From: ThatGuyUSA Date: Sun, 3 Aug 2025 02:19:17 +0000 (-0700) Subject: Advanced Clowning Module (#35797) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=bd3d5cff19d962f13e6763d5c0e64b4cccecadd8;p=space-station-14.git 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. --- 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 0000000000..3f546f2adb Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-clowning-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json index fde2ab63a6..3cc071054f 100644 --- a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json +++ b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/cdbcb1e858b11f083994a7a269ed67ef5b452ce9, Module actions by Scarky0. chem, adv-chem, and adv-mining by mubururu_, xenoborg actions by Samuka-C (github)", + "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/cdbcb1e858b11f083994a7a269ed67ef5b452ce9, Module actions by Scarky0. chem, adv-chem, and adv-mining by mubururu_, xenoborg actions by Samuka-C (github), advclown by ThatGuyUSA", "size": { "x": 32, "y": 32 @@ -97,6 +97,9 @@ { "name":"clowning-module" }, + { + "name":"adv-clowning-module" + }, { "name":"syndicate-weapon-module" }, diff --git a/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/icon.png b/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/icon.png new file mode 100644 index 0000000000..193b35c603 Binary files /dev/null and b/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/icon.png differ 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 0000000000..3124ab63b2 Binary files /dev/null and b/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/inhand-left.png differ 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 0000000000..1858c5a779 Binary files /dev/null and b/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/meta.json b/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/meta.json new file mode 100644 index 0000000000..0ad72a5acd --- /dev/null +++ b/Resources/Textures/Objects/Devices/Holoprojectors/peel.rsi/meta.json @@ -0,0 +1,82 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/f4017da82ae4de7bfaf8ebdbba33d0de81c15587, and resprited by ThatGuyUSA (github). Inhands by TiniestShark (github)", + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-clown-adv.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-clown-adv.png new file mode 100644 index 0000000000..fa925395f1 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-clown-adv.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json index 6819aedeba..3bf41f81ff 100644 --- a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json @@ -37,6 +37,9 @@ { "name": "icon-clown" }, + { + "name": "icon-clown-adv" + }, { "name": "icon-construction" }, diff --git a/Resources/Textures/Structures/Holo/peel.rsi/icon.png b/Resources/Textures/Structures/Holo/peel.rsi/icon.png new file mode 100644 index 0000000000..c3fc629126 Binary files /dev/null and b/Resources/Textures/Structures/Holo/peel.rsi/icon.png differ 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 + ] + ] + } + ] +}