From 2f50cb6208da020c0e0a6a42c61c893230e699a2 Mon Sep 17 00:00:00 2001 From: Filler <130583174+FillerVK@users.noreply.github.com> Date: Sat, 5 Aug 2023 21:36:31 +0300 Subject: [PATCH] Add TaxiBot (#18708) --- .../ghost/roles/ghost-role-component.ftl | 3 + .../Prototypes/Entities/Mobs/NPCs/silicon.yml | 56 ++++++++++++++++++ .../Recipes/Crafting/Graphs/bots/taxibot.yml | 29 +++++++++ .../Prototypes/Recipes/Crafting/bots.yml | 13 ++++ .../Mobs/Silicon/Bots/taxibot.rsi/meta.json | 41 +++++++++++++ .../Mobs/Silicon/Bots/taxibot.rsi/taxibot.png | Bin 0 -> 762 bytes 6 files changed, 142 insertions(+) create mode 100644 Resources/Prototypes/Recipes/Crafting/Graphs/bots/taxibot.yml create mode 100644 Resources/Textures/Mobs/Silicon/Bots/taxibot.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Silicon/Bots/taxibot.rsi/taxibot.png diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index 5c417b0b48..11a8437b8a 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -145,3 +145,6 @@ ghost-role-information-centcom-official-description = Inspect the station, jot d ghost-role-information-behonker-name = Behonker ghost-role-information-behonker-description = You are an antagonist, bring death and honks to those who do not follow the honkmother. + +ghost-role-information-taxibot-name = TaxiBot +ghost-role-information-taxibot-description = Drive the station crew to their destination. diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index 0d4f881f8d..3318d0c3b5 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -103,6 +103,62 @@ guides: - Robotics +- type: entity + parent: MobSiliconBase + id: MobTaxiBot + name: taxibot + description: Give a ride? + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Silicon/Bots/taxibot.rsi + layers: + - state: taxibot + map: ["enum.VehicleVisualLayers.AutoAnimate"] + noRot: true + - type: Physics + bodyType: Dynamic + - type: IntrinsicRadioReceiver + - type: ActiveRadio + channels: + - Common + - type: GhostRole + makeSentient: true + name: ghost-role-information-taxibot-name + description: ghost-role-information-taxibot-description + - type: GhostTakeoverAvailable + - type: MovementSpeedModifier + weightlessModifier: 0 + acceleration: 2 + friction: 2 + frictionNoInput: 6 + baseWalkSpeed: 3 + baseSprintSpeed: 10 + - type: Strap + buckleOffset: "0, 0" + maxBuckleDistance: 1 + - type: AmbientSound + sound: "/Audio/Effects/Vehicle/vehicleengineidle.ogg" + range: 10 + volume: -5 + enabled: true + - type: Construction + graph: TaxiBot + node: bot + - type: UnpoweredFlashlight + toggleAction: + name: action-name-toggle-light + description: action-description-toggle-light + icon: { sprite: Objects/Tools/flashlight.rsi, state: flashlight } + iconOn: Objects/Tools/flashlight.rsi/flashlight-on.png + event: !type:ToggleActionEvent + - type: PointLight + enabled: false + radius: 3.5 + softness: 2 + mask: /Textures/Effects/LightMasks/cone.png + autoRot: true + - type: entity parent: MobSiliconBase id: MobHonkBot diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/bots/taxibot.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/taxibot.yml new file mode 100644 index 0000000000..808de7efc8 --- /dev/null +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/bots/taxibot.yml @@ -0,0 +1,29 @@ +- type: constructionGraph + id: TaxiBot + start: start + graph: + - node: start + edges: + - to: bot + steps: + - tag: ProximitySensor + icon: + sprite: Objects/Misc/proximity_sensor.rsi + state: icon + name: proximity sensor + - tag: BorgHead + icon: + sprite: Objects/Specific/Borg/head.rsi + state: light_borg_head + name: borg head + doAfter: 1 + - tag: BorgArm + icon: + sprite: Mobs/Silicon/drone.rsi + state: l_hand + name: borg arm + doAfter: 2 + - material: Steel + amount: 5 + - node: bot + entity: MobTaxiBot \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Crafting/bots.yml b/Resources/Prototypes/Recipes/Crafting/bots.yml index 9a70a19c86..8ba3242a5e 100644 --- a/Resources/Prototypes/Recipes/Crafting/bots.yml +++ b/Resources/Prototypes/Recipes/Crafting/bots.yml @@ -24,6 +24,19 @@ sprite: Mobs/Silicon/Bots/honkbot.rsi state: honkbot +- type: construction + name: taxibot + id: taxibot + graph: TaxiBot + startNode: start + targetNode: bot + category: construction-category-utilities + objectType: Item + description: This bot takes people to their destination. + icon: + sprite: Mobs/Silicon/Bots/taxibot.rsi + state: taxibot + - type: construction name: jonkbot id: jonkbot diff --git a/Resources/Textures/Mobs/Silicon/Bots/taxibot.rsi/meta.json b/Resources/Textures/Mobs/Silicon/Bots/taxibot.rsi/meta.json new file mode 100644 index 0000000000..554db619f3 --- /dev/null +++ b/Resources/Textures/Mobs/Silicon/Bots/taxibot.rsi/meta.json @@ -0,0 +1,41 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "taxibot drawn by FillerVK", + "states": [ + { + "name": "taxibot", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Silicon/Bots/taxibot.rsi/taxibot.png b/Resources/Textures/Mobs/Silicon/Bots/taxibot.rsi/taxibot.png new file mode 100644 index 0000000000000000000000000000000000000000..1f1a8ff78977e247c0249a021acbe654585c46ef GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&F%}28J2BoosZ$T+a29w(7BevL z9RXp+soH$fKtcNepAc6dZD3$<;)IBqnc2gK$_)P*>gqT)Y+(QRQActD$4I6|M z6cnC4Q?s_V_Vx9(u&|Jmlar8;$ji&~_VzlnU}-bZ2+@)tzhH*{SU|vrU-}FTOvaur zjv*Cu-p;x`smXw+&0Cr|<730V|C{rw7F=p7Qq-)T*njipEd4~Q9_z>P;hK&DERF&# z|6PPF&txCEaK4?dj-TOK3d1$)8@5&TMY20C9elfTVeVnR+hu>*&g@&rx80rL(`j?A z?Z?+;rP7gx0$ zIbL)AMRFbg#h1nV(!Ut)KkT;e`KR{z{ByV;^qAIW75HoDh36l5`m`p&`u=5J<7qFy zZ?CkJ2YH9Z@x;$*39Enf{kU}S$?ccULQkh9Uby}$?soL21?!ievNNsl7uz%A{*ShrrCbm5#4O93g z)d>FF>vXs8aYWe>rBBse?-p;}_Ts|Ej(gI{)9#6X{9d`#?Q@N7?C~BmvAx^3Y+1^G z)b^R?$$j(mji1#oT&&NQpPA|XzWetX?fp0Z)bj*gyni5f+n0?yj_=`qt({pLX43t+ zXU~t