예제 #1
0
        public static Entity BuildSWATRiotPolice(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_Attack());
            clauses.Add(new ActionClause_Approach());

            var entity = BuildBaseSWAT(clauses, EntityBuilder_Weapons.HFBaton(), designation);

            return(entity);
        }
예제 #2
0
        public static Entity BuildBraveSWATAssaultRifleman(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_AvoidMelee());
            clauses.Add(new ActionClause_Attack());
            clauses.Add(new ActionClause_Approach());

            var entity = BuildBaseSWAT(clauses, EntityBuilder_Weapons.BuildAssaultRifle(), designation);

            return(entity);
        }
예제 #3
0
        public static Entity BuildSWATMarksman(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_KeepMediumRange());
            clauses.Add(new ActionClause_Attack());
            clauses.Add(new ActionClause_Approach());

            var entity = BuildBaseSWAT(clauses, EntityBuilder_Weapons.BuildCombatRifle(), designation);

            return(entity);
        }
예제 #4
0
        public static Entity BuildRentACopBatonCowardly(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_Flee());

            var entity = EntityBuilder.BuildNakedMech("Rent-A-Cop " + designation, false, new Guidebook(clauses));

            EntityBuilder.MountOntoArm(entity, BodyPartLocation.RIGHT_ARM, EntityBuilder_Weapons.BuildBaton());
            EntityBuilder.MountOntoArm(entity, BodyPartLocation.LEFT_ARM, EntityBuilder.BuildPhoneScanner());

            return(entity);
        }
예제 #5
0
        public static Entity BuildBraveRiflePoliceman(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_AvoidMelee());
            clauses.Add(new ActionClause_Attack());
            clauses.Add(new ActionClause_Approach());

            var entity = EntityBuilder.BuildNakedMech("Policeman " + designation, false, new Guidebook(clauses));

            EntityBuilder.MountOntoArm(entity, BodyPartLocation.RIGHT_ARM, EntityBuilder_Weapons.BuildRifle());
            EntityBuilder.MountOntoArm(entity, BodyPartLocation.LEFT_ARM, EntityBuilder.BuildHandheldScanner());

            return(entity);
        }
예제 #6
0
        public static Entity BuildRentACop(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_SeekMaxWeaponRange());
            clauses.Add(new ActionClause_Attack());
            clauses.Add(new ActionClause_Approach());

            var entity = EntityBuilder.BuildNakedMech("Rent-A-Cop " + designation, false, new Guidebook(clauses));

            EntityBuilder.MountOntoArm(entity, BodyPartLocation.RIGHT_ARM, EntityBuilder_Weapons.BuildPistol());
            EntityBuilder.MountOntoArm(entity, BodyPartLocation.LEFT_ARM, EntityBuilder.BuildPhoneScanner());

            return(entity);
        }
예제 #7
0
        public static Entity BuildPolicemanHeavy(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_Attack());
            clauses.Add(new ActionClause_Approach());

            var entity = EntityBuilder.BuildNakedMech("Policeman " + designation, false, new Guidebook(clauses));

            EntityBuilder.MountOntoArm(entity, BodyPartLocation.RIGHT_ARM, EntityBuilder_Weapons.BuildPistol());
            EntityBuilder.MountOntoArm(entity, BodyPartLocation.LEFT_ARM, EntityBuilder.BuildHandheldScanner());

            EntityBuilder.SlotAt(entity, BodyPartLocation.HEAD, EntityBuilder.BuildHelmet());
            EntityBuilder.SlotAt(entity, BodyPartLocation.TORSO, EntityBuilder.BuildArmorPart());
            EntityBuilder.SlotAt(entity, BodyPartLocation.TORSO, EntityBuilder.BuildArmorPart());

            return(entity);
        }
예제 #8
0
        public static Entity BuildSWATShockPolice(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_Attack());
            clauses.Add(new ActionClause_Approach());

            var entity = BuildBaseSWAT(clauses, EntityBuilder_Weapons.HFBaton(), designation);

            EntityBuilder.SlotAt(entity, BodyPartLocation.TORSO, EntityBuilder.BuildArmorPart());
            EntityBuilder.SlotAt(entity, BodyPartLocation.LEFT_LEG, EntityBuilder.BuildArmorPart());
            EntityBuilder.SlotAt(entity, BodyPartLocation.RIGHT_LEG, EntityBuilder.BuildArmorPart());
            EntityBuilder.SlotAt(entity, BodyPartLocation.TORSO, EntityBuilder.BuildArmorPart());
            EntityBuilder.SlotAt(entity, BodyPartLocation.LEFT_LEG, EntityBuilder.BuildArmorPart());
            EntityBuilder.SlotAt(entity, BodyPartLocation.RIGHT_LEG, EntityBuilder.BuildArmorPart());

            return(entity);
        }
예제 #9
0
        public static Entity BuildRentACopBaton(string designation)
        {
            List <ActionClause> clauses = new List <ActionClause>();

            clauses.Add(new ActionClause_Attack());
            clauses.Add(new ActionClause_Approach());

            var entity = EntityBuilder.BuildNakedMech("Rent-A-Cop " + designation, false, new Guidebook(clauses));

            EntityBuilder.MountOntoArm(entity, BodyPartLocation.RIGHT_ARM, EntityBuilder_Weapons.BuildBaton());
            EntityBuilder.MountOntoArm(entity, BodyPartLocation.LEFT_ARM, EntityBuilder.BuildPhoneScanner());

            var cse      = new StatusEffect_DamageResistance(-1, DamageType.SLASHING, Enums.ResistStrength.MAJOR);
            var buffable = entity.GetComponentOfType <Component_Buffable>();

            buffable.ForceAddActiveStatusEffect(cse);

            return(entity);
        }
예제 #10
0
        public static Entity BuildPlayerEntity()
        {
            var mech = BuildNakedMech("You", true, null);

            MountOntoArm(mech, BodyPartLocation.RIGHT_ARM, EntityBuilder_Weapons.BuildHFBlade());

            foreach (var location in EntityBuilder.MechLocations)
            {
                FillLocationWith(mech, location, BuildArmorPart);
            }

            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildSuicidePotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildSuicidePotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildSuicidePotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildSuicidePotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());
            AddToInventory(mech, EntityBuilder_Inventoriables.BuildIronskinPotion());

            return(mech);
        }
예제 #11
0
 public static Entity BuildPistol()
 {
     return(EntityBuilder_Weapons.BuildWeapon("Pistol", AttachmentSize.SMALL, 20, 3, 0, DamageType.PIERCING));
 }
예제 #12
0
 public static Entity BuildHFBlade()
 {
     return(EntityBuilder_Weapons.BuildWeapon("H.F. Blade", AttachmentSize.MEDIUM, 1, 10, 0, DamageType.SLASHING));
 }
예제 #13
0
 public static Entity BuildRifle()
 {
     return(EntityBuilder_Weapons.BuildWeapon("Rifle", AttachmentSize.MEDIUM, 25, 4, 0, DamageType.PIERCING));
 }
예제 #14
0
 public static Entity BuildShotgun()
 {
     return(EntityBuilder_Weapons.BuildWeapon("Shotgun", AttachmentSize.MEDIUM, 12, 5, 0, DamageType.PIERCING));
 }
예제 #15
0
 public static Entity HFBaton()
 {
     return(EntityBuilder_Weapons.BuildWeapon("H.F. Baton", AttachmentSize.MEDIUM, 1, 9, 0, DamageType.CRUSHING));
 }
예제 #16
0
 public static Entity BuildCarbine()
 {
     return(EntityBuilder_Weapons.BuildWeapon("Rifle", AttachmentSize.LARGE, 25, 9, 0, DamageType.PIERCING));
 }
예제 #17
0
 public static Entity BuildAssaultRifle()
 {
     return(EntityBuilder_Weapons.BuildWeapon("Rifle", AttachmentSize.LARGE, 30, 6, 0, DamageType.PIERCING));
 }
예제 #18
0
 public static Entity BuildCombatRifle()
 {
     return(EntityBuilder_Weapons.BuildWeapon("Combat Rifle", AttachmentSize.LARGE, 50, 8, 0, DamageType.PIERCING));
 }
예제 #19
0
 public static Entity BuildBaton()
 {
     return(EntityBuilder_Weapons.BuildWeapon("Baton", AttachmentSize.SMALL, 1, 3, 0, DamageType.CRUSHING));
 }