Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Batonbot and Disablerbot #501

Merged
merged 4 commits into from
Jan 24, 2025
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,16 @@ petting-success-cleanbot = You pet {THE($target)} on {POSS-ADJ($target)} damp me
petting-success-medibot = You pet {THE($target)} on {POSS-ADJ($target)} sterile metal head.
petting-success-recycler = You pet {THE($target)} on {POSS-ADJ($target)} mildly threatening steel exterior.
petting-success-gladiabot = You pet {THE($target)} on {POSS-ADJ($target)} vicious cardboard head.
petting-success-batonbot = You pet {THE($target)} on {POSS-ADJ($target)} protective metal head.
petting-success-disablerbot = You pet {THE($target)} on {POSS-ADJ($target)} protective metal head.

petting-failure-honkbot = You reach out to pet {THE($target)}, but {SUBJECT($target)} honks in refusal!
petting-failure-cleanbot = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} busy mopping!
petting-failure-mimebot = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} busy miming!
petting-failure-medibot = You reach out to pet {THE($target)}, but {POSS-ADJ($target)} syringe nearly stabs your hand!
petting-failure-gladiabot = You reach out to pet {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BE($target)} only wants to fight!
petting-failure-batonbot = You reach out to pet {THE($target)}, but {SUBJECT($target)} nearly prods you with its baton!
petting-failure-disablerbot = You reach out to pet {THE($target)}, but {SUBJECT($target)} angrily waves its weapon at you!

## Rattling fences

Expand Down
1 change: 1 addition & 0 deletions Resources/Prototypes/Entities/Clothing/Head/helmets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
- type: Tag
tags:
- WhitelistChameleon
- ClothingHeadHelmetBasic # Floof -- Batonbot & Disablerbot recipes

#Mercenary Helmet
- type: entity
Expand Down
28 changes: 28 additions & 0 deletions Resources/Prototypes/Entities/Markers/Spawners/bots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,31 @@
prototypes:
- MobCleanBot

- type: entity
name: disablerbot spawner
id: SpawnMobDisablerBot
parent: MarkerBase
components:
- type: Sprite
layers:
- state: green
- sprite: Mobs/Silicon/Bots/disablerbot.rsi
state: disablerbot
- type: ConditionalSpawner
prototypes:
- MobDisablerBot

- type: entity
name: batonbot spawner
id: SpawnMobBatonBot
parent: MarkerBase
components:
- type: Sprite
layers:
- state: green
- sprite: Mobs/Silicon/Bots/batonbot.rsi
state: batonbot
- type: ConditionalSpawner
prototypes:
- MobBatonBot

75 changes: 75 additions & 0 deletions Resources/Prototypes/Entities/Mobs/NPCs/batonbot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
- type: entity
parent: MobSiliconBase
id: MobBatonBot
name: batonbot
description: Defends the station from hostile wildlife.
components:
- type: Sprite
sprite: Mobs/Silicon/Bots/batonbot.rsi
state: batonbot
- type: Construction
graph: BatonBot
node: bot
- type: SentienceTarget
flavorKind: station-event-random-sentience-flavor-mechanical
- type: UseDelay
delay: 1
- type: NpcFactionMember
factions:
- NanoTrasen
- type: CombatMode
- type: Stunbaton
energyPerUse: 0
- type: MeleeWeapon
altDisarm: false
soundHit:
path: /Audio/Weapons/egloves.ogg
angle: 0
animation: WeaponArcPunch
damage:
types:
Shock: 4
- type: StaminaDamageOnHit
damage: 20
sound: /Audio/Weapons/egloves.ogg
- type: MobThresholds
thresholds:
0: Alive
60: Dead
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:TriggerBehavior
- trigger:
!type:DamageTrigger
damage: 60
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ProximitySensor:
min: 1
max: 1
- !type:SpawnEntitiesBehavior
spawn:
Stunbaton:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: MovementSpeedModifier
baseWalkSpeed: 2
baseSprintSpeed: 3
- type: HTN
rootTask:
task: BatonbotCompound
blackboard:
AttackDelayDeviation: !type:Single
0.3
- type: InteractionPopup
interactSuccessString: petting-success-batonbot
interactFailureString: petting-failure-batonbot
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
80 changes: 80 additions & 0 deletions Resources/Prototypes/Entities/Mobs/NPCs/disablerbot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
- type: entity
parent: MobSiliconBase
id: MobDisablerBot
name: disablerbot
description: Defends the station from hostile wildlife.
components:
- type: StaticPrice
price: 545
- type: Sprite
sprite: Mobs/Silicon/Bots/disablerbot.rsi
state: disablerbot
- type: Construction
graph: DisablerBot
node: bot
- type: SentienceTarget
flavorKind: station-event-random-sentience-flavor-mechanical
- type: UseDelay
delay: 1
- type: NpcFactionMember
factions:
- NanoTrasen
- type: CombatMode
- type: BatterySelfRecharger
autoRecharge: true
autoRechargeRate: 300
- type: Battery
maxCharge: 10000
startingCharge: 10000
- type: Gun
fireRate: 1
minAngle: 2
maxAngle: 10
angleIncrease: 2
angleDecay: 5
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/taser2.ogg
- type: ProjectileBatteryAmmoProvider
proto: BulletDisablerSmg
fireCost: 1
- type: MobThresholds
thresholds:
0: Alive
60: Dead
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:TriggerBehavior
- trigger:
!type:DamageTrigger
damage: 60
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ProximitySensor:
min: 1
max: 1
- !type:SpawnEntitiesBehavior
spawn:
WeaponDisabler:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: MovementSpeedModifier
baseWalkSpeed: 2
baseSprintSpeed: 3
- type: HTN
rootTask:
task: DisablerbotCompound
blackboard:
AttackDelayDeviation: !type:Single
0.3
- type: InteractionPopup
interactSuccessString: petting-success-disablerbot
interactFailureString: petting-failure-disablerbot
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,7 @@
tags:
- Taser
- Sidearm
- WeaponDisabler # Floof - Disablerbot recipe
- type: Sprite
sprite: Objects/Weapons/Guns/Battery/disabler.rsi
layers:
Expand Down
3 changes: 3 additions & 0 deletions Resources/Prototypes/Entities/Objects/Weapons/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
layers:
- state: stunbaton_off
map: [ "enum.ToggleVisuals.Layer" ]
- type: Tag
tags:
- Stunbaton # Floof - Batonbot recipe
- type: Stunbaton
energyPerUse: 50
- type: ItemToggle
Expand Down
12 changes: 12 additions & 0 deletions Resources/Prototypes/NPCs/batonbot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
- type: htnCompound
id: BatonbotCompound
branches:
- tasks:
- !type:HTNPrimitiveTask
operator: !type:UtilityOperator
proto: NearbyMeleeTargets
- !type:HTNCompoundTask
task: MeleeAttackTargetCompound
- tasks:
- !type:HTNCompoundTask
task: IdleCompound
9 changes: 9 additions & 0 deletions Resources/Prototypes/NPCs/disablerbot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
- type: htnCompound
id: DisablerbotCompound
branches:
- tasks:
- !type:HTNCompoundTask
task: InnateRangedCombatCompound
- tasks:
- !type:HTNCompoundTask
task: IdleCompound
28 changes: 28 additions & 0 deletions Resources/Prototypes/Recipes/Crafting/Graphs/bots/batonbot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
- type: constructionGraph
id: BatonBot
start: start
graph:
- node: start
edges:
- to: bot
steps:
- tag: ProximitySensor
icon:
sprite: Objects/Misc/proximity_sensor.rsi
state: icon
name: proximity sensor
doAfter: 2
- tag: Stunbaton
icon:
sprite: Objects/Weapons/Melee/stunbaton.rsi
state: stunbaton_on
name: stunbaton
doAfter: 2
- tag: ClothingHeadHelmetBasic
icon:
sprite: DeltaV/Clothing/Head/Helmets/security.rsi
state: icon
name: Security Helmet
doAfter: 2
- node: bot
entity: MobBatonBot
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
- type: constructionGraph
id: DisablerBot
start: start
graph:
- node: start
edges:
- to: bot
steps:
- tag: ProximitySensor
icon:
sprite: Objects/Misc/proximity_sensor.rsi
state: icon
name: Proximity sensor
doAfter: 2
- tag: WeaponDisabler
icon:
sprite: Objects/Weapons/Guns/Battery/disabler.rsi
state: base
name: Disabler
doAfter: 2
- tag: ClothingHeadHelmetBasic
icon:
sprite: DeltaV/Clothing/Head/Helmets/security.rsi
state: icon
name: Security Helmet
doAfter: 2
- node: bot
entity: MobDisablerBot
26 changes: 26 additions & 0 deletions Resources/Prototypes/Recipes/Crafting/bots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,29 @@
icon:
sprite: Mobs/Silicon/Bots/gladiabot.rsi
state: gladiabot

- type: construction
name: batonbot
id: batonbot
graph: BatonBot
startNode: start
targetNode: bot
category: construction-category-utilities
objectType: Item
description: Defends the station from hostile wildlife.
icon:
sprite: Mobs/Silicon/Bots/batonbot.rsi
state: batonbot

- type: construction
name: disablerbot
id: disablerbot
graph: DisablerBot
startNode: start
targetNode: bot
category: construction-category-utilities
objectType: Item
description: Defends the station from hostile wildlife.
icon:
sprite: Mobs/Silicon/Bots/disablerbot.rsi
state: disablerbot
9 changes: 9 additions & 0 deletions Resources/Prototypes/tags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1377,3 +1377,12 @@

- type: Tag
id: BrassKnuckles

- type: Tag
id: WeaponDisabler

- type: Tag
id: Stunbaton

- type: Tag
id: ClothingHeadHelmetBasic
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions Resources/Textures/Mobs/Silicon/Bots/batonbot.rsi/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Tim Falken",
"states": [
{
"name": "batonbot",
"delays": [
[
0.5,
0.2
]
]
}
]
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions Resources/Textures/Mobs/Silicon/Bots/disablerbot.rsi/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Tim Falken",
"states": [
{
"name": "disablerbot",
"delays": [
[
0.5,
0.2
]
]
}
]
}
Loading