public HitStruct GetDamage() { calculatecost(); int Dice = 0; if (User is Character) { Dice = (User as Character).Str / 10; } Dice += MeleeBonusDice; HitStruct Damage = new HitStruct(); Damage.DamageClass = DamageClass; for (int i = 0; i < Dice; i++) { int damage = Program.prng.Next(1, 7); if (damage > 1) { Damage.HealthDamage += 1; } if (damage == 6) { Damage.HealthDamage += 1; } Damage.StunDamage += damage; } DrawEnergy(); return(Damage); }
static void AttackRound(Character Attacker, Character Defender) { IDealsDamage Attack = Attacker.DefaultAttack; HitStruct Hit = new HitStruct(); for (int i = 0; i < Attacker.Powers.Count; i++) { if (Attacker.Powers[i] is IDealsDamage && Attacker.Powers[i].CanUse()) { Attack = (IDealsDamage)Attacker.Powers[i]; break; } } if (Attack != null && (Attack as Power).CanUse()) { Hit = Attack.GetDamage(); if (Attacker.Attackroll(Defender)) { Hit = Defender.ApplyDefense(Hit); Console.WriteLine(Attacker + " attacks " + Defender + " with " + Attack + " dealing " + Hit.HealthDamage + "(" + Hit.StunDamage + " Stun) damage!"); Defender.GetHit(Hit); } else { Console.WriteLine(Attacker + " attacks " + Defender + " with " + Attack + ", but misses!"); } } else { Console.WriteLine(Attacker + " was too tired to use any abilities this turn and used a recovery instead!"); Attacker.TakeRecovery(); } }
static HitStruct PowerHit(IDealsDamage Power, IHealth Target) { HitStruct Hit = Power.GetDamage(); Target.Health -= Hit.HealthDamage; IStun StunTarget = Target as IStun; if (StunTarget != null) { StunTarget.Stun -= Hit.StunDamage; } return(Hit); }
public HitStruct ApplyDefense(HitStruct Hit) { if (Hit.DamageClass == damageclass.physical) { Hit.HealthDamage -= RPDEF; Hit.StunDamage -= RPDEF + PDEF; } if (Hit.DamageClass == damageclass.energy) { Hit.HealthDamage -= REDEF; Hit.StunDamage -= REDEF + EDEF; } return(Hit); }
public HitStruct GetDamage() { calculatecost(); HitStruct Damage = new HitStruct(); Damage.DamageClass = DamageClass; for (int i = 0; i < Dice; i++) { int damage = Program.prng.Next(1, 7); Damage.HealthDamage += damage; Damage.StunDamage += damage * StunMult; } DrawEnergy(); return(Damage); }
public HitStruct GetDamage() { HitStruct Damage = new HitStruct(); Damage.DamageClass = DamageClass; for (int i = 0; i < Dice; i++) { int damage = Program.prng.Next(1, 7); if (damage > 1) { Damage.HealthDamage += 1; } if (damage == 6) { Damage.HealthDamage += 1; } Damage.StunDamage += damage; } DrawEnergy(); return(Damage); }
public void GetHit(HitStruct Hit) { Health -= Hit.HealthDamage; Stun -= Hit.StunDamage; }
public HitStruct ApplyDefense(HitStruct Hit) { if (Hit.DamageClass == damageclass.physical) { Hit.HealthDamage -= RPDEF; Hit.StunDamage -= RPDEF + PDEF; } if (Hit.DamageClass == damageclass.energy) { Hit.HealthDamage -= REDEF; Hit.StunDamage -= REDEF + EDEF; } return Hit; }
public HitStruct GetDamage() { calculatecost(); HitStruct Damage = new HitStruct(); Damage.DamageClass = DamageClass; for (int i = 0; i < Dice; i++) { int damage = Program.prng.Next(1, 7); Damage.HealthDamage += damage; Damage.StunDamage += damage * StunMult; } DrawEnergy(); return Damage; }
public HitStruct GetDamage() { calculatecost(); int Dice = 0; if (User is Character) { Dice = (User as Character).Str / 10; } Dice += MeleeBonusDice; HitStruct Damage = new HitStruct(); Damage.DamageClass = DamageClass; for (int i = 0; i < Dice; i++) { int damage = Program.prng.Next(1, 7); if (damage > 1) { Damage.HealthDamage += 1; } if (damage == 6) { Damage.HealthDamage += 1; } Damage.StunDamage += damage; } DrawEnergy(); return Damage; }
public HitStruct GetDamage() { HitStruct Damage = new HitStruct(); Damage.DamageClass = DamageClass; for (int i = 0; i < Dice; i++) { int damage = Program.prng.Next(1, 7); if (damage > 1) { Damage.HealthDamage += 1; } if (damage == 6) { Damage.HealthDamage += 1; } Damage.StunDamage += damage; } DrawEnergy(); return Damage; }