本文整理汇总了C#中Conquest.Maps.BattleMap.findAllies方法的典型用法代码示例。如果您正苦于以下问题:C# BattleMap.findAllies方法的具体用法?C# BattleMap.findAllies怎么用?C# BattleMap.findAllies使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Conquest.Maps.BattleMap
的用法示例。
在下文中一共展示了BattleMap.findAllies方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: calculateAccuracy
// Calculates the accuracy between the two units
public static float calculateAccuracy(ref Unit attacker, ref Unit defender, ref BattleMap map)
{
// Variables
int adjacentAlliesAttacker= map.findAllies(defender.mapPos[0], defender.mapPos[1], 1, 1, map.getTeamID(attacker.mapPos)).size;
int adjacentAlliesDefender= map.findAllies(attacker.mapPos[0], attacker.mapPos[1], 1, 1, map.getTeamID(defender.mapPos)).size;
int distance= (defender.level-attacker.level);
return MathHelper.Clamp((100f-2f*distance-4*adjacentAlliesDefender+4*adjacentAlliesAttacker)/100f, 0f, 1f);
}
示例2: giveBuff
// --- Methods ---
// Gives buffs to every ally around you know whatever
private void giveBuff(ref Unit unit, ref BattleMap map)
{
// Variables
List<int[]> allies= map.findAllies(unit.mapPos[0], unit.mapPos[1], 1, 3, map.getTeamID(unit.mapPos));
for(int i= 0; i< allies.size; i++)
{
map.teams.items[allies.items[i][0]].units.items[allies.items[i][1]].addStatEffect(
new StatEffect(
EffectType.Buff,
"Morale Boost",
"+4 to all stats",
buffSE,
1
),
ref map
);
}
}
示例3: attackUnit
// Makes the unit attack the given unit, given that unit's coords on the map, the name of the attack, and a reference to the map
public override bool attackUnit(Unit unit, bool initiatedAttack, ref Unit victim, int x, int y, ref AttackInfo info, ref BattleMap map)
{
switch(info.skillID)
{
case "smite":
case "basic_attack": {
if(victim== null)
return false;
victim.takeDamage(ref info, ref unit, ref map);
if(!info.missed && unit.isAlive && !unit.isAI)
unit.gainExp(ref victim, ref map);
};break;
case "multicure": {
// Variables
List<int[]> allies= map.findAllies(unit.mapPos[0], unit.mapPos[1], 1, 2, map.getTeamID(unit.mapPos));
for(int i= 0; i< allies.size; i++)
map.teams.items[allies.items[i][0]].units.items[allies.items[i][1]].heal(-1*info.damage, ref unit, ref map);
if(unit.isAlive && !unit.isAI)
unit.gainExp(64*allies.size, ref map);
};break;
case "armor_of_god": {
if(victim== null)
return false;
unit.addStatEffect(
new StatEffect(
EffectType.Buff,
"Armor of God",
"+35 Def and Res",
armorOfGodSE,
2
),
ref map
);
if(unit.isAlive && !unit.isAI)
unit.gainExp(ref victim, ref map);
};break;
case "rally_spirit": {
// Variables
List<int[]> allies= map.findAllies(unit.mapPos[0], unit.mapPos[1], 0, 2, map.getTeamID(unit.mapPos));
for(int i= 0; i< allies.size; i++)
{
map.teams.items[allies.items[i][0]].units.items[allies.items[i][1]].addStatEffect(
new StatEffect(
EffectType.Buff,
"Rally Spirit",
"+10% to all stats",
rallySpiritSE,
3
),
ref map
);
}
if(!info.missed && unit.isAlive && !unit.isAI)
unit.gainExp(32*allies.size, ref map);
};break;
case "rejuvinate": {
if(victim== null)
return false;
if(victim.getStatusEffect()== null)
victim.clearDebuffs();
else
{
if(!victim.clearStatusEffect())
info.missed= false;
}
if(!info.missed && unit.isAlive && !unit.isAI)
unit.gainExp(ref victim, ref map);
};break;
case "healing_prayer": {
// Variables
List<int[]> allies= map.findAllAllies(map.getTeamID(unit.mapPos));
for(int i= 0; i< allies.size; i++)
{
map.teams.items[allies.items[i][0]].units.items[allies.items[i][1]].heal(
map.teams.items[allies.items[i][0]].units.items[allies.items[i][1]].originalHealth,
ref unit,
ref map
);
}
unit.addStatEffect(
new StatEffect(
EffectType.Debuff,
"Humility",
"-75% to all stats",
//.........这里部分代码省略.........
示例4: powerInNumbersSE
// Stat effect when the unit uses Rally Spirit
private void powerInNumbersSE(ref Unit unit, ref BattleMap map)
{
// Variables
int amount= (2*(map.findAllies(unit.mapPos[0], unit.mapPos[1], 0, 2, map.getTeamID(unit.mapPos))).size);
unit.defense+= amount;
unit.resistance+= amount;
}
示例5: showAttackDecision
// Shows the player if he/she should attack
public override AttackInfo showAttackDecision(string skillID, Unit unit, ref Unit defender, ref BattleMap map)
{
if(skillID== "basic_attack")
return AttackInfo.createBasicAttack(map.getFullUnitID(unit.mapPos), map.getFullUnitID(defender.mapPos), ref map);
// Variables
AttackInfo info= AttackInfo.create(skillID, map.getFullUnitID(unit.mapPos), map.getFullUnitID(defender.mapPos), ref map);
switch(skillID)
{
case "multicure":
info.damage= -1*getLargest(roundUp((float)(unit.level)/2f), roundUp((float)(unit.magic)/3f), 10);
info.projDefenderStats[0]-= info.damage;
if(hasPassive("mana_restoration"))
info.projDefenderStats[1]+= (info.damage/2);
break;
case "armor_of_god":
info.projDefenderStats[3]+= 35;
info.projDefenderStats[5]+= 35;
break;
case "smite":
info.damage= info.calculateDamage(ref map);
info.damage+= (int)(Math.Max(0.25f*unit.resistance-0.25f*defender.resistance, 0f));
info.projDefenderStats[0]-= info.damage;
break;
case "rally_spirit":
case "rejuvinate":
case "prophetic_reap":
info.accuracy= 1f;
info.criticalChance= 0f;
break;
case "healing_prayer":
if(hasPassive("mana_restoration"))
info.projDefenderStats[1]+= (info.damage/2);
info.accuracy= 1f;
info.criticalChance= 0f;
break;
case "mend":
info.damage= ((hasPassive("evil\'s_bane") && map.getTeamID(unit.mapPos)!= map.getTeamID(defender.mapPos)) ? 1 : -1)*getLargest(2*unit.level, roundUp((float)(unit.magic)/2f), 15);
info.damage+= (4*(map.findAllies(unit.mapPos[0], unit.mapPos[1], 0, 2, map.getTeamID(unit.mapPos))).size);
info.projDefenderStats[0]-= info.damage;
if(hasPassive("mana_restoration"))
info.projDefenderStats[1]+= (info.damage/2);
info.criticalChance= 0f;
break;
case "banish_spirits":
info.projDefenderStats[2]= (int)(info.projDefenderStats[2]*1.1f);
info.projDefenderStats[3]= (int)(info.projDefenderStats[3]*0.85f);
info.projDefenderStats[5]= (int)(info.projDefenderStats[5]*0.85f);
break;
case "rest_in_god":
info.projDefenderStats[2]+= 20;
info.projDefenderStats[3]+= 20;
info.projDefenderStats[4]+= 20;
info.projDefenderStats[5]+= 20;
info.projDefenderStats[6]+= 20;
break;
}
return info;
}