Esempio n. 1
0
 public static void Assassinate(TroopScript Assassin, TroopScript Victim)
 {
     int AssassinChance = Mathf.RoundToInt(((float)Assassin.GetEnergy()/(float)Assassin.GetMaxEnergy())*900+((float)Assassin.GetNumber()/(float)Assassin.GetmaxNumber())*100);
     int VictimChance = Mathf.RoundToInt(((float)Victim.GetEnergy()/(float)Victim.GetMaxEnergy())*100+((float)Victim.GetNumber()/(float)Victim.GetmaxNumber())*900);
     if (AssassinChance>VictimChance && Victim.boss == false)
         Victim.SetNumber(0);
 }
	static void SetTroopBaseStatistics (TroopScript troop,int baseAtk, int baseDef, int baseHitPoints, int baseSpeed, int People, int baseMovement, int BaseRange){
		troop.SetBaseAttack(baseAtk);
		troop.SetBaseDefence(baseDef);
		troop.SetBaseHitpoints(baseHitPoints);
		troop.SetBaseSpeed (baseSpeed);
		troop.SetNumber(People);
		troop.SetBaseMovement(baseMovement);
		troop.SetBaseRange(BaseRange);
	}
Esempio n. 3
0
 //CHECK THE PATHFINDER
 void AddStuffToPlayer(TroopScript player,int faction,muhClasses muhclass,Chief leader, int Attack,int Defence,int HitPoints,int Speed,int NumberOfSoldiers,  Weaponry _weapon, Armory _armor)
 {
     //	Classes ClassToSet = Classes.fromList(muhclass);
     player.Faction = faction;
     player.SetClassDONTUSETHISAREYOUSUREYOUWANTTOUSETHISYOUREALLYSHOULDNT(muhclass);
     player.SetChief(leader);
     player.SetBaseAttack(Attack);
     player.SetBaseDefence(Defence);
     player.SetBaseHitpoints(HitPoints);
     player.SetBaseSpeed(Speed);
     player.SetNumber(NumberOfSoldiers);
     player.SetWeapon(_weapon);
     player.SetArmor(_armor);
 }
Esempio n. 4
0
 public static void SummonYogurtOntoPlayer(TroopScript Player, TroopScript Summoner)
 {
     int PlayerValue = TroopValue(Player);
     int SummonerValue = TroopValue(Summoner);
     if (PlayerValue>SummonerValue+2)
         Player.SetOgreSummonInto(Summoner);
     else if (PlayerValue>SummonerValue -2 && SummonerValue+2>PlayerValue)
                 Player.SetNumber(0);
     else if (PlayerValue<= SummonerValue-2){
         Player.Faction = Summoner.Faction;
         Player.SetOgreSummonInto(Summoner);
     }
 }
Esempio n. 5
0
 public static void MonkSelfHeal(TroopScript Monk, float SkillModifier)
 {
     int TroopSize = CalculateAdjustedTroopSize(Monk.GetNumber(),ReturnPeoplePerLine(Monk),Monk.GetChief().GetMuhReturns());
     int Heal = HealAmount (TroopSize,Monk.GetChief().GetIntelligence(),SkillModifier,0); //MUH BUFFEADOS
     Monk.SetNumber(Monk.GetNumber()+Heal);
     if (Monk.GetNumber()>Monk.GetmaxNumber())
     Monk.SetNumber(Monk.GetmaxNumber());
 }
Esempio n. 6
0
    public static void MeleeFightingScript(TroopScript Attacker, TroopScript Defender, Skill SkillUsed)
    {
        int AttackerBattlefieldEffect = 1; //still to impement
        int DefenderBattlefieldEffect = 1; //still to impement
        int DamageOnAtk = 0;
        int DamageOnDef = 0;
        TroopScript DefenderGuarder = Defender.GuardedBy;
        float 	DefenderGuardPercent = (float)Defender.GuardedByPercent/100;
        if (SkillUsed.CancelsPreparation == true && Defender.isMagicGuarded == false){
            Defender.CancelPreparation();
            Defender.FlushPreparationTarget();
        }
        if (SkillUsed.ReducesEnergy == true && Defender.isMagicGuarded == false){
            Defender.SetEnergy(Defender.GetEnergy()-1);
            if (Defender.GetEnergy() <0)
                Defender.SetEnergy(0);
        }
        if (SkillUsed.RemoveBuffs == true && Defender.isMagicGuarded == false)Defender.RemoveAllbuffs();
        if (SkillUsed.AppliesPoison == true && Defender.Poisoned == 0) Defender.Poisoned = 1;
        if (SkillUsed.Freezes == true && !Defender.Frozen) Defender.Frozen = true;
        if (SkillUsed.Penetrating == true || DefenderGuarder == null){
        DamageOnDef = CalculateDamage(Attacker,Defender,SkillUsed,AttackerBattlefieldEffect);
            Debug.Log("Damage on "+Defender.GetChief().GetName()+":"+DamageOnDef);
            Defender.SetNumber(Defender.GetNumber()-DamageOnDef);
            if (Defender.GetNumber()<0) Defender.SetNumber(0);
        if (CanCounter(Attacker,Defender,SkillUsed)){

        float CounterScaling = CounterAttackDamage(Defender.GetChief().GetCounterAttack(),Defender.GetArmor().CounterAttackValue+Defender.GetWeapon().CounterAttackValue);
            DamageOnAtk = CalculateCounterDamage(Defender,Attacker,CounterScaling,DefenderBattlefieldEffect);
            Attacker.SetNumber(Attacker.GetNumber()-DamageOnAtk);
                if (Attacker.GetNumber()<0) Attacker.SetNumber(0);}}

        else if (SkillUsed.Penetrating == false && DefenderGuarder != null){

            DamageOnDef = CalculateDamage(Attacker,Defender,SkillUsed,AttackerBattlefieldEffect);
            if (SkillUsed.AffectRating) RatingFromDamage(Attacker,DamageOnDef);
            if (DefenderGuarder){
                if (DefenderGuarder.GetNumber()<= 0){
                    Defender.GuardedBy = null;
                    Defender.GuardedByPercent = 0;
                    DamageOnDef = CalculateDamage(Attacker,Defender,SkillUsed,AttackerBattlefieldEffect);
                    Debug.Log("Damage on "+Defender.GetChief().GetName()+":"+DamageOnDef);
                    Defender.SetNumber(Defender.GetNumber()-DamageOnDef);
                    if (Defender.GetNumber()<0) Defender.SetNumber(0);
                    if (CanCounter(Attacker,Defender,SkillUsed)){

                        float CounterScaling = CounterAttackDamage(Defender.GetChief().GetCounterAttack(),Defender.GetArmor().CounterAttackValue+Defender.GetWeapon().CounterAttackValue);
                        DamageOnAtk = CalculateCounterDamage(Defender,Attacker,CounterScaling,DefenderBattlefieldEffect);
                        Attacker.SetNumber(Attacker.GetNumber()-DamageOnAtk);
                        if (Attacker.GetNumber()<0) Attacker.SetNumber(0);}
                }else{
                DefenderGuarder.SetNumber(DefenderGuarder.GetNumber()-Mathf.RoundToInt(DamageOnDef*DefenderGuardPercent));
                if (DefenderGuarder.GetNumber()<0) DefenderGuarder.SetNumber(0);
                Defender.SetNumber(Defender.GetNumber()-Mathf.RoundToInt(DamageOnDef*(1-DefenderGuardPercent)));
                if (Defender.GetNumber()<0) Defender.SetNumber(0);
                if (CanCounter(Attacker,DefenderGuarder,SkillUsed)){
                    float CounterScaling = CounterAttackDamage(DefenderGuarder.GetChief().GetCounterAttack(),DefenderGuarder.GetArmor().CounterAttackValue+DefenderGuarder.GetWeapon().CounterAttackValue);
                    DamageOnAtk = CalculateCounterDamage(DefenderGuarder,Attacker,CounterScaling,DefenderBattlefieldEffect);
                    Attacker.SetNumber(Attacker.GetNumber()-DamageOnAtk);
                    if (Attacker.GetNumber()<0) Attacker.SetNumber(0);
            }
                }}
        }
    }
Esempio n. 7
0
 public static void HealingTarget(TroopScript Healer, TroopScript Healed, float SkillModifier)
 {
     int PeoplePerLine = ReturnPeoplePerLine(Healer);
     int TroopSize = CalculateAdjustedTroopSize(Healer.GetNumber(),PeoplePerLine,Healer.GetChief().GetMuhReturns());
     int Healing = HealAmount(TroopSize,Healer.GetChief().GetIntelligence(),SkillModifier,Healer.GetDirectMatkBuff()); //NEED BUFF MODIFIERS FUGG
     Healed.SetNumber(Healed.GetNumber()+Healing);
     if (Healed.GetNumber()>Healed.GetmaxNumber())
         Healed.SetNumber(Healed.GetmaxNumber());
 }