public static Troop CreateTroop(Troop t, Empire Owner) { Troop troop = new Troop() { Class = t.Class, Cost = t.Cost, Name = t.Name, Description = t.Description, HardAttack = t.HardAttack, Initiative = t.Initiative, SoftAttack = t.SoftAttack, Strength = t.Strength, StrengthMax = t.StrengthMax > 0 ? t.StrengthMax : t.Strength, Icon = t.Icon, BoardingStrength = t.BoardingStrength }; if (Owner != null) { Troop strength = troop; strength.Strength = strength.Strength + (int)(Owner.data.Traits.GroundCombatModifier * (float)troop.Strength); } troop.TargetType = t.TargetType; troop.TexturePath = t.TexturePath; troop.Range = t.Range; troop.Experience = t.Experience; troop.SetOwner(Owner); troop.animated = t.animated; troop.idle_path = t.idle_path; troop.idle_x_offset = t.idle_x_offset; troop.idle_y_offset = t.idle_y_offset; troop.num_attack_frames = t.num_attack_frames; troop.num_idle_frames = t.num_idle_frames; troop.attack_width = t.attack_width; troop.attack_path = t.attack_path; troop.WhichFrame = (int)RandomMath.RandomBetween(1f, (float)(t.num_idle_frames - 1)); troop.first_frame = t.first_frame; troop.sound_attack = t.sound_attack; troop.MovementCue = t.MovementCue; troop.MoveTimerBase = t.MoveTimerBase; troop.AttackTimerBase = t.AttackTimerBase; troop.Level = t.Level; troop.Kills = t.Kills; return troop; }
public static Troop CopyTroop(Troop t) { Troop troop = new Troop() { Class = t.Class, Cost = t.Cost, Name = t.Name }; troop.SetOwner(t.GetOwner()); troop.Range = t.Range; troop.Description = t.Description; troop.HardAttack = t.HardAttack; troop.Initiative = t.Initiative; troop.SoftAttack = t.SoftAttack; troop.Strength = t.Strength; troop.StrengthMax = t.StrengthMax; troop.TargetType = t.TargetType; troop.TexturePath = t.TexturePath; troop.Experience = t.Experience; troop.Icon = t.Icon; troop.animated = t.animated; troop.idle_path = t.idle_path; troop.idle_x_offset = t.idle_x_offset; troop.idle_y_offset = t.idle_y_offset; troop.num_attack_frames = t.num_attack_frames; troop.num_idle_frames = t.num_idle_frames; troop.attack_width = t.attack_width; troop.attack_path = t.attack_path; troop.WhichFrame = (int)RandomMath.RandomBetween(1f, (float)(t.num_idle_frames - 1)); troop.first_frame = t.first_frame; troop.MovementCue = t.MovementCue; troop.sound_attack = t.sound_attack; troop.MoveTimerBase = t.MoveTimerBase; troop.AttackTimerBase = t.AttackTimerBase; troop.Level = t.Level; troop.Kills = t.Kills; troop.BoardingStrength = t.BoardingStrength; return troop; }