Răsfoiți Sursa

nordic and aztec walls, roman NPCs

Taislin 7 luni în urmă
părinte
comite
5e270884c6

+ 1 - 0
Content.Server/Engineering/EntitySystems/SpawnAfterInteractSystem.cs

@@ -78,6 +78,7 @@ bool IsTileClear()
                     {
                         var coordinates = Transform(ent).Coordinates;
                         QueueDel(ent);
+                        EntityManager.SpawnEntity("FloorWaterEntity", coordinates);
                     }
                 }
             }

+ 6 - 6
Resources/Prototypes/Civ14/Entities/Clothing/entities_clothing_hats.yml

@@ -422,8 +422,8 @@
     - type: Armor
       modifiers:
         coefficients:
-          Blunt: 0.5
-          Slash: 0.5
+          Blunt: 0.75
+          Slash: 0.75
           Piercing: 0.9
           Arrow: 0.6
           Heat: 0.85
@@ -459,8 +459,8 @@
     - type: Armor
       modifiers:
         coefficients:
-          Blunt: 0.5
-          Slash: 0.5
+          Blunt: 0.75
+          Slash: 0.75
           Piercing: 0.9
           Arrow: 0.6
           Heat: 0.85
@@ -480,8 +480,8 @@
     - type: Armor
       modifiers:
         coefficients:
-          Blunt: 0.5
-          Slash: 0.5
+          Blunt: 0.75
+          Slash: 0.75
           Piercing: 0.9
           Arrow: 0.6
           Heat: 0.85

+ 5 - 5
Resources/Prototypes/Civ14/Entities/Clothing/entities_clothing_suit.yml

@@ -4434,12 +4434,12 @@
     - type: Armor
       modifiers:
         coefficients:
-          Blunt: 0.35
-          Slash: 0.35
-          Piercing: 0.9
-          Arrow: 0.55
+          Blunt: 0.65
+          Slash: 0.65
+          Piercing: 0.6
+          Arrow: 0.65
           Heat: 0.85
-          Radiation: 0.55
+          Radiation: 0.85
     - type: Construction
 
       graph: civ13_suit_segmented_armor

+ 54 - 0
Resources/Prototypes/Civ14/Entities/Clothing/entities_clothing_uniform.yml

@@ -815,6 +815,60 @@
       cost: 4
       material: Cloth
       time: 8
+
+- type: entity
+  name: blue tunic
+  parent: ClothingUniformBase
+  id: civ13_uniform_blue_tunic
+  description: A blue tunic.
+  components:
+    - type: Sprite
+      sprite: Civ14/Clothing/exported/uniforms/blue_tunic.rsi
+    - type: Clothing
+      sprite: Civ14/Clothing/exported/uniforms/blue_tunic.rsi
+    - type: Armor
+      modifiers:
+        coefficients:
+          Blunt: 1
+          Slash: 1
+          Piercing: 1
+          Arrow: 1
+          Heat: 1
+          Radiation: 1
+    - type: Construction
+
+      graph: civ13_uniform_blue_tunic
+      node: end
+      cost: 3
+      material: Cloth
+      time: 8
+- type: entity
+  name: red tunic
+  parent: ClothingUniformBase
+  id: civ13_uniform_red_tunic
+  description: A red tunic.
+  components:
+    - type: Sprite
+      sprite: Civ14/Clothing/exported/uniforms/red_tunic.rsi
+    - type: Clothing
+      sprite: Civ14/Clothing/exported/uniforms/red_tunic.rsi
+    - type: Armor
+      modifiers:
+        coefficients:
+          Blunt: 1
+          Slash: 1
+          Piercing: 1
+          Arrow: 1
+          Heat: 1
+          Radiation: 1
+    - type: Construction
+
+      graph: civ13_uniform_red_tunic
+      node: end
+      cost: 3
+      material: Cloth
+      time: 8
+
 - type: entity
   name: toga
   parent: ClothingUniformBase

+ 2 - 2
Resources/Prototypes/Civ14/Entities/Mobs/NPC/natives.yml

@@ -58,7 +58,7 @@
     - type: Gun
       minAngle: 0
       maxAngle: 5
-      fireRate: 1
+      fireRate: 0.3
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto
@@ -100,7 +100,7 @@
     - type: Gun
       minAngle: 0
       maxAngle: 5
-      fireRate: 1
+      fireRate: 0.3
       selectedMode: SemiAuto
       availableModes:
         - SemiAuto

+ 294 - 0
Resources/Prototypes/Civ14/Entities/Mobs/NPC/romans.yml

@@ -0,0 +1,294 @@
+- type: entity
+  name: roman legionary
+  parent: BaseMobHuman
+  id: MobRomanMelee
+  suffix: "Melee, Hostile"
+  components:
+    - type: NpcFactionMember
+      factions:
+        - Syndicate
+    - type: NukeOperative
+    - type: Loadout
+      prototypes: [RomanInhandGladius]
+      roleLoadout: [RomanLoadoutLegionary]
+    - type: InputMover
+    - type: MobMover
+    - type: HTN
+      rootTask:
+        task: SimpleHumanoidHostileCompound
+
+- type: entity
+  name: roman sagittarius
+  parent: BaseMobHuman
+  id: MobRomanRanged
+  suffix: "Ranged, Hostile"
+  components:
+    - type: NpcFactionMember
+      factions:
+        - Syndicate
+    - type: NukeOperative
+    - type: Loadout
+      prototypes: [RomanInhandRanged]
+      roleLoadout: [RomanLoadoutSagittarius]
+    - type: InputMover
+    - type: MobMover
+    - type: HTN
+      rootTask:
+        task: SimpleHumanoidHostileCompound
+    - type: Gun
+      minAngle: 0
+      maxAngle: 5
+      fireRate: 0.3
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+      soundGunshot:
+        collection: BulletMiss
+      soundEmpty: null
+    - type: BallisticAmmoProvider
+      proto: ArrowRegular
+      capacity: 40
+    - type: CombatMode
+
+- type: entity
+  name: allied sagittarius
+  parent: BaseMobHuman
+  id: MobRomanRangedFriendly
+  suffix: "Ranged, Friendly"
+  components:
+    - type: NpcFactionMember
+      factions:
+        - Nomads
+    - type: Loadout
+      prototypes: [RomanInhandRangedFriendly]
+      roleLoadout: [RomanLoadoutSagittariusFriendly]
+    - type: InputMover
+    - type: MobMover
+    - type: HTN
+      rootTask:
+        task: SimpleHumanoidHostileCompound
+    - type: Gun
+      minAngle: 0
+      maxAngle: 5
+      fireRate: 0.3
+      selectedMode: SemiAuto
+      availableModes:
+        - SemiAuto
+      soundGunshot:
+        collection: BulletMiss
+      soundEmpty: null
+    - type: BallisticAmmoProvider
+      proto: ArrowRegular
+      capacity: 30
+    - type: CombatMode
+
+- type: entity
+  name: allied legionary
+  parent: MobRomanMelee
+  id: MobRomanMeleeFriendly
+  suffix: "Melee, Friendly"
+  components:
+    - type: NpcFactionMember
+      factions:
+        - Nomads
+    - type: Loadout
+      prototypes: [RomanInhandGladiusFriendly]
+      roleLoadout: [RomanLoadoutLegionaryFriendly]
+    - type: InputMover
+    - type: MobMover
+    - type: HTN
+      rootTask:
+        task: SimpleHumanoidHostileCompound
+# role loadouts
+- type: roleLoadout
+  id: RomanLoadoutSagittarius
+  groups:
+    - RomanHelmetSagittarius
+    - RomanShoes
+    - RomanUniformSagittarius
+    - RomanPocketHerbs
+
+- type: roleLoadout
+  id: RomanLoadoutLegionary
+  groups:
+    - RomanHelmetLegionary
+    - RomanShoes
+    - RomanUniformLegionary
+    - RomanArmorLegionary
+    - RomanPocketBandage
+- type: roleLoadout
+  id: RomanLoadoutSagittariusFriendly
+  groups:
+    - RomanHelmetSagittariusFriendly
+    - RomanShoes
+    - RomanUniformSagittariusFriendly
+    - RomanPocketHerbs
+
+- type: roleLoadout
+  id: RomanLoadoutLegionaryFriendly
+  groups:
+    - RomanHelmetLegionary
+    - RomanShoes
+    - RomanUniformLegionaryFriendly
+    - RomanArmorLegionary
+    - RomanPocketBandage
+
+## loadout groups
+- type: loadoutGroup
+  id: RomanHelmetLegionary
+  name: loadout-group-roman-head
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCHelmetLegionary
+- type: loadoutGroup
+  id: RomanHelmetSagittarius
+  name: loadout-group-roman-head
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCHelmetSagittarius
+- type: loadoutGroup
+  id: RomanHelmetSagittariusFriendly
+  name: loadout-group-roman-head
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCHelmetSagittariusFriendly
+- type: loadoutGroup
+  id: RomanShoes
+  name: loadout-group-roman-shoes
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCShoes
+
+- type: loadoutGroup
+  id: RomanUniformLegionary
+  name: loadout-group-roman-jumpsuit
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCUniformLegionary
+
+- type: loadoutGroup
+  id: RomanUniformSagittarius
+  name: loadout-group-roman-jumpsuit
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCUniformSagittarius
+- type: loadoutGroup
+  id: RomanUniformLegionaryFriendly
+  name: loadout-group-roman-jumpsuit
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCUniformLegionaryFriendly
+
+- type: loadoutGroup
+  id: RomanUniformSagittariusFriendly
+  name: loadout-group-roman-jumpsuit
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCUniformSagittariusFriendly
+- type: loadoutGroup
+  id: RomanPocketHerbs
+  name: loadout-group-roman-pockets
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanPocketHerbs
+- type: loadoutGroup
+  id: RomanPocketBandage
+  name: loadout-group-roman-pockets
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanPocketBandage
+- type: loadoutGroup
+  id: RomanArmorLegionary
+  name: loadout-group-roman-armor
+  minLimit: 1
+  maxLimit: 1
+  loadouts:
+    - RomanNPCArmorLegionary
+## starting gears
+- type: loadout
+  id: RomanNPCUniformLegionary
+  equipment:
+    jumpsuit: civ13_uniform_red_tunic
+- type: loadout
+  id: RomanNPCUniformSagittarius
+  equipment:
+    jumpsuit: civ13_uniform_red_tunic
+- type: loadout
+  id: RomanNPCUniformLegionaryFriendly
+  equipment:
+    jumpsuit: civ13_uniform_blue_tunic
+- type: loadout
+  id: RomanNPCUniformSagittariusFriendly
+  equipment:
+    jumpsuit: civ13_uniform_blue_tunic
+
+- type: loadout
+  id: RomanNPCHelmetSagittarius
+  equipment:
+    head: civ13_head_wolfpelt_headcover
+- type: loadout
+  id: RomanNPCHelmetSagittariusFriendly
+  equipment:
+    head: civ13_head_foxpelt_headcover
+- type: loadout
+  id: RomanNPCHelmetLegionary
+  equipment:
+    head: civ13_head_roman_legionary_helmet
+
+- type: loadout
+  id: RomanNPCArmorLegionary
+  equipment:
+    outerClothing: civ13_suit_segmented_armor
+
+- type: loadout
+  id: RomanNPCShoes
+  equipment:
+    shoes: civ13_shoes_sandals_1
+
+- type: loadout
+  id: RomanPocketBandage
+  equipment:
+    pocket1: GauzeLeather1
+- type: loadout
+  id: RomanPocketHerbs
+  equipment:
+    pocket1: HealingHerbs
+
+## starting gears (weapons)
+- type: startingGear
+  id: RomanInhandGladius
+  inhand:
+    - civ13_sword_gladius
+    - civ13_shield_roman_shield
+
+- type: startingGear
+  id: RomanInhandRanged
+  equipment:
+    belt: ClothingBeltQuiver
+  inhand:
+    - WoodenBucklerRed
+    - BowImprovised
+
+- type: startingGear
+  id: RomanInhandGladiusFriendly
+  inhand:
+    - civ13_sword_gladius
+    - civ13_shield_praetorian_roman_shield
+
+- type: startingGear
+  id: RomanInhandRangedFriendly
+  equipment:
+    belt: ClothingBeltQuiver
+  inhand:
+    - WoodenBucklerBlue
+    - BowImprovised

+ 36 - 0
Resources/Prototypes/Civ14/Entities/Structures/Craft/shields.yml

@@ -556,6 +556,42 @@
             - !type:DoActsBehavior
               acts: ["Destruction"]
 
+- type: entity
+  name: roman shield
+  parent: WoodenBuckler
+  id: civ13_shield_roman_shield
+  description: A shield. Blocks melee damage.
+  components:
+    - type: Sprite
+      state: icon
+      sprite: Civ14/Weapons/roman_shield.rsi
+
+    - type: Blocking
+      passiveBlockModifier:
+        coefficients:
+          Blunt: 0.630
+          Slash: 0.630
+          Piercing: 0.630
+      activeBlockModifier:
+        coefficients:
+          Blunt: 0.554
+          Slash: 0.554
+          Piercing: 0.554
+        flatReductions:
+          Blunt: 1
+          Slash: 1
+          Piercing: 1
+    - type: Item
+      heldPrefix: null
+      sprite: Civ14/Weapons/roman_shield.rsi
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 75
+
+          behaviors:
+            - !type:DoActsBehavior
+              acts: ["Destruction"]
 - type: entity
   name: chimalli
   parent: WoodenBuckler

+ 10 - 1
Resources/Prototypes/Civ14/Entities/Structures/Craft/shields_lathe.yml

@@ -16,6 +16,7 @@
     - civ13_shield_spartan_aspis
     - civ13_shield_egyptian_shield
     - civ13_shield_praetorian_roman_shield
+    - civ13_shield_roman_shield
 
 - type: latheRecipe
   id: civ13_shield_bronze_shield
@@ -78,7 +79,15 @@
   completetime: 12
   materials:
     Iron: 1000
-  result: civ13_shield_praetorian_roman_shield
+  result: civ13_shield_roman_shield
+- type: latheRecipe
+  id: civ13_shield_roman_shield
+  categories:
+    - AnvilShieldsAncient
+  completetime: 12
+  materials:
+    Iron: 1000
+  result: civ13_shield_roman_shield
 
 - type: latheRecipePack
   id: AnvilShieldsMedieval

+ 96 - 0
Resources/Prototypes/Civ14/Entities/Structures/Walls/walls.yml

@@ -501,3 +501,99 @@
           state: rocky_north
         - map: ["enum.EdgeLayer.West"]
           state: rocky_west
+
+- type: entity
+  parent: BaseWall
+  id: AztecWall
+  name: aztec wall
+  description: A wood wall in the Aztec style.
+  components:
+    - type: MeleeSound
+      soundGroups:
+        Brute:
+          path: "/Audio/Weapons/boxingpunch1.ogg"
+    - type: Tag
+      tags:
+        - Wooden
+        - Wall
+    - type: Sprite
+      sprite: Civ14/Structures/Walls/aztec.rsi
+    - type: Icon
+      sprite: Civ14/Structures/Walls/aztec.rsi
+    - type: Damageable
+      damageContainer: StructuralInorganic
+      damageModifierSet: Wood
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 100
+          behaviors:
+            - !type:PlaySoundBehavior
+              sound:
+                collection: WoodDestroy
+            - !type:SpawnEntitiesBehavior
+              spawn:
+                MaterialWoodPlank:
+                  min: 1
+                  max: 2
+            - !type:DoActsBehavior
+              acts: ["Destruction"]
+    - type: Construction
+      agemin: 1
+      agemax: 8
+      graph: AztecWall
+      node: end
+      cost: 5
+      time: 8
+      material: WoodPlank
+    - type: IconSmooth
+      key: walls
+      base: aztec
+
+- type: entity
+  parent: BaseWall
+  id: NordicWall
+  name: nordic wall
+  description: A wood wall in the Nordic european style.
+  components:
+    - type: MeleeSound
+      soundGroups:
+        Brute:
+          path: "/Audio/Weapons/boxingpunch1.ogg"
+    - type: Tag
+      tags:
+        - Wooden
+        - Wall
+    - type: Sprite
+      sprite: Civ14/Structures/Walls/nordic.rsi
+    - type: Icon
+      sprite: Civ14/Structures/Walls/nordic.rsi
+    - type: Damageable
+      damageContainer: StructuralInorganic
+      damageModifierSet: Wood
+    - type: Destructible
+      thresholds:
+        - trigger: !type:DamageTrigger
+            damage: 100
+          behaviors:
+            - !type:PlaySoundBehavior
+              sound:
+                collection: WoodDestroy
+            - !type:SpawnEntitiesBehavior
+              spawn:
+                MaterialWoodPlank:
+                  min: 1
+                  max: 2
+            - !type:DoActsBehavior
+              acts: ["Destruction"]
+    - type: Construction
+      agemin: 1
+      agemax: 8
+      graph: NordicWall
+      node: end
+      cost: 5
+      time: 8
+      material: WoodPlank
+    - type: IconSmooth
+      key: walls
+      base: nordic

+ 56 - 0
Resources/Prototypes/Civ14/Recipes/Clothing/recipes_clothing_uniform.yml

@@ -10616,6 +10616,62 @@
               doAfter: 8
     - node: end
       entity: civ13_uniform_stola
+- type: construction
+  name: red tunic
+  id: civ13_uniform_red_tunic
+  graph: civ13_uniform_red_tunic
+  startNode: start
+  targetNode: end
+  category: construction-category-clothing
+  description: A red tunic.
+  icon:
+    sprite: Civ14/Clothing/exported/uniforms/red_tunic.rsi
+    state: icon
+  objectType: Item
+  agemin: 1
+  agemax: 8
+
+- type: constructionGraph
+  id: civ13_uniform_red_tunic
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: end
+          steps:
+            - material: Cloth
+              amount: 3
+              doAfter: 8
+    - node: end
+      entity: civ13_uniform_red_tunic
+- type: construction
+  name: blue tunic
+  id: civ13_uniform_blue_tunic
+  graph: civ13_uniform_blue_tunic
+  startNode: start
+  targetNode: end
+  category: construction-category-clothing
+  description: A blue tunic.
+  icon:
+    sprite: Civ14/Clothing/exported/uniforms/blue_tunic.rsi
+    state: icon
+  objectType: Item
+  agemin: 1
+  agemax: 8
+
+- type: constructionGraph
+  id: civ13_uniform_blue_tunic
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: end
+          steps:
+            - material: Cloth
+              amount: 3
+              doAfter: 8
+    - node: end
+      entity: civ13_uniform_blue_tunic
 - type: construction
   name: short loincloth
   id: civ13_uniform_short_loincloth

+ 69 - 4
Resources/Prototypes/Civ14/Recipes/Walls/walls.yml

@@ -33,7 +33,6 @@
   agemin: 0
   agemax: 8
   placementMode: SnapgridCenter
-
   canBuildInImpassable: false
   conditions:
     - !type:TileNotBlocked
@@ -291,7 +290,7 @@
     sprite: Civ14/Structures/Walls/roman.rsi
     state: full
   objectType: Structure
-  agemin: 0
+  agemin: 1
   agemax: 8
   placementMode: SnapgridCenter
 
@@ -320,7 +319,7 @@
     sprite: Civ14/Structures/Walls/grecian.rsi
     state: full
   objectType: Structure
-  agemin: 0
+  agemin: 1
   agemax: 8
   placementMode: SnapgridCenter
 
@@ -349,7 +348,7 @@
     sprite: Civ14/Structures/Walls/sandstone_block_wall.rsi
     state: full
   objectType: Structure
-  agemin: 0
+  agemin: 1
   agemax: 8
   placementMode: SnapgridCenter
 
@@ -482,3 +481,69 @@
               doAfter: 5
     - node: end
       entity: FortressSandstoneBrickWall
+
+- type: construction
+  name: aztec wall
+  id: AztecWall
+  graph: AztecWall
+  startNode: start
+  targetNode: end
+  category: construction-category-structures
+  description: A wood wall in the Aztec style.
+  icon:
+    sprite: Civ14/Structures/Walls/aztec.rsi
+    state: full
+  objectType: Structure
+  agemin: 1
+  agemax: 8
+  placementMode: SnapgridCenter
+  canBuildInImpassable: false
+  conditions:
+    - !type:TileNotBlocked
+
+- type: constructionGraph
+  id: AztecWall
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: end
+          steps:
+            - material: WoodPlank
+              amount: 5
+              doAfter: 5
+    - node: end
+      entity: AztecWall
+
+- type: construction
+  name: nordic wall
+  id: NordicWall
+  graph: NordicWall
+  startNode: start
+  targetNode: end
+  category: construction-category-structures
+  description: A wood wall in the Nordic european style.
+  icon:
+    sprite: Civ14/Structures/Walls/nordic.rsi
+    state: full
+  objectType: Structure
+  agemin: 1
+  agemax: 8
+  placementMode: SnapgridCenter
+  canBuildInImpassable: false
+  conditions:
+    - !type:TileNotBlocked
+
+- type: constructionGraph
+  id: NordicWall
+  start: start
+  graph:
+    - node: start
+      edges:
+        - to: end
+          steps:
+            - material: WoodPlank
+              amount: 5
+              doAfter: 5
+    - node: end
+      entity: NordicWall

+ 4 - 2
Resources/Prototypes/Entities/Objects/Shields/shields.yml

@@ -171,7 +171,8 @@
   description: A small round wooden shield. This one is red.
   components:
     - type: Sprite
-      state: red_buckler-icon
+      sprite: Civ14/Weapons/red_buckler.rsi
+      state: icon
     - type: Construction
       graph: WoodenBuckler
       node: woodenBucklerRed
@@ -183,7 +184,8 @@
   description: A small round wooden shield. This one is blue.
   components:
     - type: Sprite
-      state: blue_buckler-icon
+      sprite: Civ14/Weapons/blue_buckler.rsi
+      state: icon
     - type: Construction
       graph: WoodenBuckler
       node: woodenBucklerBlue

+ 2 - 2
Resources/Prototypes/Recipes/Construction/weapons.yml

@@ -30,7 +30,7 @@
   targetNode: woodenBucklerBlue
   category: construction-category-weapons
   description: A simple round wooden shield. This one is painted blue.
-  icon: { sprite: Civ14/Weapons/buckler.rsi, state: blue_buckler-icon }
+  icon: { sprite: Civ14/Weapons/blue_buckler.rsi, state: icon }
   objectType: Item
   agemin: 0
   agemax: 8
@@ -43,7 +43,7 @@
   targetNode: woodenBucklerRed
   category: construction-category-weapons
   description: A simple round wooden shield. This one is painted red.
-  icon: { sprite: Civ14/Weapons/buckler.rsi, state: red_buckler-icon }
+  icon: { sprite: Civ14/Weapons/red_buckler.rsi, state: icon }
   objectType: Item
   agemin: 0
   agemax: 8