From bd3d5cff19d962f13e6763d5c0e64b4cccecadd8 Mon Sep 17 00:00:00 2001 From: ThatGuyUSA Date: Sat, 2 Aug 2025 19:19:17 -0700 Subject: [PATCH] Advanced Clowning Module (#35797) * pAIs can now accept keys, but can't talk in said channels * added dummy module * added adv clown module alongside projector * holopeel & projector sprite added, it's destroyable too * added experimental pie cannon * exp pie thrower throws pies, added tool icon, added bananium horn * removed the weird pAI changes, my bad! * okay NOW the pAI stuff is all gone * added icon, recipe, renamed tech for unlocking * removed bananium horn * Added in-hand sprites, credited to TiniestShark. Changed holopeel projector description to let the user know it recharges over time. --- .../Objects/Devices/holoprojectors.yml | 23 ++++- .../Specific/Robotics/borg_modules.yml | 20 +++++ .../Objects/Weapons/Guns/pneumatic_cannon.yml | 34 ++++++++ .../Structures/Holographic/projections.yml | 38 ++++++++ .../Recipes/Lathes/Packs/robotics.yml | 1 + .../Recipes/Lathes/robot_modules.yml | 10 +++ .../Prototypes/Research/civilianservices.yml | 1 + .../actions_borg.rsi/adv-clowning-module.png | Bin 0 -> 815 bytes .../Actions/actions_borg.rsi/meta.json | 5 +- .../Devices/Holoprojectors/peel.rsi/icon.png | Bin 0 -> 652 bytes .../Holoprojectors/peel.rsi/inhand-left.png | Bin 0 -> 813 bytes .../Holoprojectors/peel.rsi/inhand-right.png | Bin 0 -> 821 bytes .../Devices/Holoprojectors/peel.rsi/meta.json | 82 ++++++++++++++++++ .../borgmodule.rsi/icon-clown-adv.png | Bin 0 -> 474 bytes .../Robotics/borgmodule.rsi/meta.json | 3 + .../Structures/Holo/peel.rsi/icon.png | Bin 0 -> 1344 bytes .../Structures/Holo/peel.rsi/meta.json | 33 +++++++ 17 files changed, 248 insertions(+), 2 deletions(-) create mode 100644 Resources/Textures/Interface/Actions/actions_borg.rsi/adv-clowning-module.png create mode 100644 Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/icon.png create mode 100644 Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/meta.json create mode 100644 Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-clown-adv.png create mode 100644 Resources/Textures/Structures/Holo/peel.rsi/icon.png create mode 100644 Resources/Textures/Structures/Holo/peel.rsi/meta.json diff --git a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml index 8acac47133..e1a15b7493 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml @@ -52,6 +52,27 @@ disableEject: true swap: false +- type: entity + parent: Holoprojector + id: HoloprojectorClownBorg + name: holopeel projector + description: A holopeel projector that creates a slippery, hard light banana peel. It recharges, so that the fun never ends! + suffix: borg + components: + - type: HolosignProjector + signProto: HoloPeel + chargeUse: 240 + - type: Sprite + sprite: Objects/Devices/Holoprojectors/peel.rsi + state: icon + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMicroreactor + disableEject: true + swap: false + - type: entity parent: Holoprojector id: HolofanProjector @@ -89,7 +110,7 @@ parent: HolofanProjector id: HolofanProjectorBorg name: integrated holofan - description: Stops idiots from causing more crew harm during atmospheric emergencies. Installed directly into an engineering cyborg, it recharges over time. + description: Stops idiots from causing more crew harm during atmospheric emergencies. Installed directly into an engineering cyborg, it recharges over time. components: - type: ItemSlots slots: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index 96780dda80..215b0d8e52 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -899,6 +899,26 @@ - type: BorgModuleIcon icon: { sprite: Interface/Actions/actions_borg.rsi, state: clowning-module } +- type: entity + id: BorgModuleAdvancedClowning + parent: [ BaseBorgModuleService, BaseProviderBorgModule ] + name: advanced clowning cyborg module + description: Advanced service module for only the silliest cyborgs! Comes with a built-in oven that bakes pies automatically over time, a holopeel projector, and a push horn. + components: + - type: Sprite + layers: + - state: service + - state: icon-clown-adv + - type: ItemBorgModule + items: + - HoloprojectorClownBorg + - BorgLauncherCreamPie + - ClownRecorder + - PushHorn + - BikeHornInstrument + - type: BorgModuleIcon + icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-clowning-module } + #syndicate modules - type: entity id: BorgModuleSyndicateWeapon diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml index 63a7acd257..cadc0f478a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml @@ -103,6 +103,40 @@ containers: storagebase: !type:Container ents: [] + +- type: entity + name: experimental pie cannon + parent: BaseWeaponBattery + id: BorgLauncherCreamPie + description: Deliver a generous portion of cream directly to the crew! Automatically bakes pies over time. + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Cannons/pie_cannon.rsi + layers: + - state: piecannon + - type: Gun + fireRate: 2 + selectedMode: SemiAuto + availableModes: + - SemiAuto + - FullAuto + soundGunshot: + path: /Audio/Effects/thunk.ogg + soundEmpty: + path: /Audio/Items/hiss.ogg + clumsyProof: true + - type: ProjectileBatteryAmmoProvider + proto: FoodPieBananaCream + fireCost: 30 + - type: Battery + maxCharge: 90 + startingCharge: 90 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 1 + - type: AmmoCounter + - type: Item + size: Normal - type: entity name: syringe gun diff --git a/Resources/Prototypes/Entities/Structures/Holographic/projections.yml b/Resources/Prototypes/Entities/Structures/Holographic/projections.yml index f9bf81695e..4867fc84d8 100644 --- a/Resources/Prototypes/Entities/Structures/Holographic/projections.yml +++ b/Resources/Prototypes/Entities/Structures/Holographic/projections.yml @@ -46,6 +46,44 @@ - type: Airtight noAirWhenFullyAirBlocked: false +- type: entity + id: HoloPeel + parent: HolosignWetFloor + name: holopeel + description: A banana peel made of slippery hard light, watch your step! + components: + - type: Sprite + sprite: Structures/Holo/peel.rsi + state: icon + - type: Physics + bodyType: Static + canCollide: true + - type: Slippery + - type: StepTrigger + intersectRatio: 0.2 + - type: CollisionWake + enabled: false + - type: Fixtures + fixtures: + slips: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.2,0.2,0.2" + hard: false + layer: + - SlipLayer + - type: TimedDespawn + lifetime: 30 + - type: Clickable + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: entity id: HolosignSecurity parent: HolosignWetFloor diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml b/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml index 74483c4ebe..f22cde9c52 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml @@ -37,6 +37,7 @@ recipes: - BorgModuleAdvancedCleaning - BorgModuleAdvancedTool + - BorgModuleAdvancedClowning - BorgModuleAdvancedChemical - BorgModuleAdvancedMining diff --git a/Resources/Prototypes/Recipes/Lathes/robot_modules.yml b/Resources/Prototypes/Recipes/Lathes/robot_modules.yml index d7d112bba0..9210529a1d 100644 --- a/Resources/Prototypes/Recipes/Lathes/robot_modules.yml +++ b/Resources/Prototypes/Recipes/Lathes/robot_modules.yml @@ -68,3 +68,13 @@ # Science Modules # Service Modules + +- type: latheRecipe + parent: BaseGoldBorgModuleRecipe + id: BorgModuleAdvancedClowning + result: BorgModuleAdvancedClowning + materials: + Steel: 500 + Glass: 500 + Plastic: 250 + Bananium: 375 diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index d06b7c1ce5..c32169051c 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -199,6 +199,7 @@ cost: 4000 recipeUnlocks: - PushHorn + - BorgModuleAdvancedClowning # Tier 3 diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-clowning-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-clowning-module.png new file mode 100644 index 0000000000000000000000000000000000000000..3f546f2adb523581c62c7f3f423cfb86b5f6d4c2 GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCil;0(?STjg5_gOa?wl1}R;siBgs;EcI9D`!4lmS<2#m+1+H1iA1MF>!Vhd z1uUZFqOwb6CHo}#L-@Jvxy7o)1QP_A6(yOa`8n+51X5*$i{v>hMFg_d#JaVGiq&}| zl*L+=gmUG0gCs?pv_xwZ*ezta{T0}agn7Kgxjn^!*6!WHJrPK0l?3?(|0fnO7_Ima z1JuP?;1OBOz`&mX!i-fFuDw7(i4xa{lHmNblJdl&REB`W%)AmkKi3ciQ$0gH6QTRd znt^JzrABzBd3tIwZ~!^13{s4&42(dQ7Z6KB*`UzWU}Of1GXdF#j7$syKspMDGuv6f z;#oj82+VI|WOxA#bQq0hDFaYy0y_f>P^E#9u>s=(h^ZhOSr{&803;i@YSlcJjsJ3i(JJTZ;uvD#-#fXxs98b4)%0#Je^O0|baW4!bI#xY z@^733OPe;j2d3}%-f-?kuk|182f3fbKiJeWPYqaJf8)S>rhMre4Vpd-N^*^Ici1=# zj%XZ_0MdPeZ7w1WhYu*Yg@$)0{K-iuuu_{i>lnvm%Y;{649^{WlbRfB%HAk0d8@0E-&wtGg{8ok44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1E2l#}zCNL!YFa7`j!2bhtRK99r`^%bvYPO|Dc&2%JYB6vCIjjs)jI0cdK$aH}OGDWppJ^~M zgTb$b#xJG%x_kUbvaSxbcJW86fk$r;B4qg!|iR7x|hM zcwD1PyJY|W-@98>py|P+iK*2uJU8f0kNL1t)xJY=M&qY;Hj$32Q={~af-VaCH>~G# zDfT|kdD-dAg|AJko&EhkItu5_$T<3Gc35CX$yX8aoJ7kat=yjuE?@U9U2gHXGs2?4 zhA;GnKTs~ba8vTyLrq3C+#&H%zbYqMh?V)7aBVuZVD}qRy=a||M>#5-an|>uzxoHg?-1LG0W_j z%RlS0bJwl^AGwo1AKZNPzp|P9odmYD1%GZG_$^-Ivu?BPv(HOG!QkoY=d#Wzp$Pyl C?$s>- literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/inhand-left.png b/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..3124ab63b21dbb307be7a9fdfe17d9a421eceffb GIT binary patch literal 813 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&F%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl|-3h)VWO<+iP!SLe$z5jL$cK;9jKf`e5f9Zc^W#wOA=YIbXd0>vpj56ue z)KsAIUwPN;ffQd!kYDhBWWeBh;LZu43}=ByWHC^|VGw3Kp1&dmC@4|l8c`CQpH@cG@7Lh!0?&C&cFgxVPIrzz_nszRG&lj{ad)l*E z_ZXfO)p6Pv#I9%X?=EfoUl&jnQYBQy8nEHYUWZ%_EnCgIpZChu-`1$z{{>|Ffp1bx z#$Pj8&6j@m_dYd6@BS+5!*;rYPmS47Z21w`u;tm#a|iCR`$X?~&hY3_^~}b-zdb8I z*5FVdQ&MBb@0Gh24BLDyZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/inhand-right.png b/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..1858c5a77937f8f6d5e55fdb625466ce99f5b540 GIT binary patch literal 821 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 F0sxQwMPC2_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Holo/peel.rsi/meta.json b/Resources/Textures/Structures/Holo/peel.rsi/meta.json new file mode 100644 index 0000000000..d6d84c40e6 --- /dev/null +++ b/Resources/Textures/Structures/Holo/peel.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Made by thatguyusa (discord) / ThatGuyUSA (github) for SS14", + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} -- 2.51.2