Adds creampie launcher

This commit is contained in:
Vera Aguilera Puerto
2021-03-21 18:05:35 +01:00
parent 1a8982da52
commit d505ce1409
12 changed files with 90 additions and 15 deletions

View File

@@ -5,6 +5,8 @@ using Content.Shared.Interfaces.GameObjects.Components;
using Robust.Shared.Audio;
using Robust.Shared.GameObjects;
using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager.Attributes;
using Robust.Shared.ViewVariables;
namespace Content.Server.GameObjects.Components.Nutrition
{
@@ -13,6 +15,10 @@ namespace Content.Server.GameObjects.Components.Nutrition
{
public override string Name => "CreamPie";
[ViewVariables(VVAccess.ReadWrite)]
[field: DataField("paralyzeTime")]
public float ParalyzeTime { get; set; } = 1f;
public void PlaySound()
{
SoundSystem.Play(Filter.Pvs(Owner), AudioHelpers.GetRandomFileFromSoundCollection("desecration"), Owner,

View File

@@ -51,7 +51,7 @@ namespace Content.Server.GameObjects.Components.Nutrition
void IThrowCollide.HitBy(ThrowCollideEventArgs eventArgs)
{
if (!eventArgs.Thrown.HasComponent<CreamPieComponent>() || CreamPied) return;
if (CreamPied || eventArgs.Thrown.Deleted || !eventArgs.Thrown.TryGetComponent(out CreamPieComponent? creamPie)) return;
CreamPied = true;
Owner.PopupMessage(Loc.GetString("You have been creamed by {0:theName}!", eventArgs.Thrown));
@@ -59,7 +59,7 @@ namespace Content.Server.GameObjects.Components.Nutrition
if (Owner.TryGetComponent(out StunnableComponent? stun))
{
stun.Paralyze(1f);
stun.Paralyze(creamPie.ParalyzeTime);
}
}
}

View File

@@ -31,7 +31,7 @@ namespace Content.Server.GameObjects.Components.Projectiles
set => _damages = value;
}
[field: DataField("delete_on_collide")]
[field: DataField("deleteOnCollide")]
public bool DeleteOnCollide { get; } = true;
// Get that juicy FPS hit sound
@@ -95,6 +95,7 @@ namespace Content.Server.GameObjects.Components.Projectiles
recoilComponent.Kick(direction);
}
if(DeleteOnCollide)
Owner.Delete();
}

View File

@@ -176,5 +176,6 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition
Dart, // Placeholder
Grenade,
Energy,
CreamPie, // I can't wait for this enum to be a prototype type...
}
}

View File

@@ -0,0 +1,4 @@
author: Your_Name_Here
changes:
- type: Add
message: Adds cream pie launcher. Honk!

View File

@@ -10,7 +10,7 @@
state: particle0
shader: unshaded
- type: Projectile
delete_on_collide: false
deleteOnCollide: false
soundHit: /Audio/Weapons/Guns/Hits/bullet_hit.ogg
damages:
Radiation: 10

View File

@@ -228,6 +228,10 @@
Quantity: 8
- type: Sprite
sprite: Objects/Consumable/Food/pie.rsi
- type: Ammo
caliber: CreamPie
caseless: true
projectile: BulletCreampie
#- type: entity

View File

@@ -23,7 +23,6 @@
map: ["enum.RangedBarrelVisualLayers.Base"]
- state: bolt-closed
map: ["enum.RangedBarrelVisualLayers.Bolt"]
- type: Item
size: 24
sprite: Objects/Weapons/Guns/Launchers/china_lake.rsi
@@ -56,7 +55,6 @@
map: ["enum.RangedBarrelVisualLayers.Base"]
- state: mag-0
map: ["enum.RangedBarrelVisualLayers.Mag"]
- type: Item
size: 24
sprite: Objects/Weapons/Guns/Launchers/rocket.rsi
@@ -78,3 +76,29 @@
magState: mag
steps: 1
zeroVisible: true
- type: entity
name: pie cannon
parent: LauncherBase
id: LauncherCreamPie
description: Load cream pie for optimal results.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Launchers/pie_cannon.rsi
state: piecannon
- type: Item
size: 24
sprite: Objects/Weapons/Guns/Launchers/pie_cannon.rsi
- type: RangedWeapon
clumsyCheck: false
- type: RevolverBarrel
caliber: CreamPie
currentSelector: Single
allSelectors:
- Single
fillPrototype: FoodBananaCreamPie
fireRate: 5
capacity: 15
soundEmpty: /Audio/Weapons/Guns/Empty/empty.ogg
soundGunshot: /Audio/Effects/bang.ogg
soundInsert: /Audio/Items/bikehorn.ogg

View File

@@ -150,7 +150,7 @@
state: frag
- type: ExplosiveProjectile
- type: Projectile
delete_on_collide: false
deleteOnCollide: false
- type: Explosive
devastationRange: 1
heavyImpactRange: 2
@@ -172,7 +172,7 @@
sprite: Objects/Weapons/Guns/Projectiles/grenade.rsi
state: grenade
- type: Projectile
delete_on_collide: false
deleteOnCollide: false
soundHit: /Audio/Effects/gen_hit.ogg
- type: StunnableProjectile
paralyzeAmount: 8
@@ -189,7 +189,7 @@
state: grenade
- type: ExplosiveProjectile
- type: Projectile
delete_on_collide: false
deleteOnCollide: false
- type: Explosive
devastationRange: 1
heavyImpactRange: 2
@@ -207,7 +207,7 @@
sprite: Objects/Weapons/Guns/Projectiles/grenade.rsi
state: grenade
- type: Projectile
delete_on_collide: false
deleteOnCollide: false
soundHit: /Audio/Effects/flash_bang.ogg
- type: FlashProjectile
range: 7
@@ -225,7 +225,7 @@
state: grenade
- type: ExplosiveProjectile
- type: Projectile
delete_on_collide: false
deleteOnCollide: false
- type: Explosive
devastationRange: 0
heavyImpactRange: 1
@@ -243,7 +243,7 @@
sprite: Objects/Fun/toys.rsi
state: foamdart
- type: Projectile
delete_on_collide: true
deleteOnCollide: true
soundHit: /Audio/Guns/Hits/snap.ogg
damages:
Blunt: 2
@@ -259,6 +259,27 @@
sprite: Objects/Fun/toys.rsi
state: capbullet
- type: Projectile
delete_on_collide: true
deleteOnCollide: true
damages:
Piercing: 0
- type: entity
id: BulletCreampie
name: cream pie
parent: BulletBase
description: get creampied, honk!!
abstract: true
components:
- type: Projectile
deleteOnCollide: false # CreamPie component handles this.
- type: CreamPie
- type: ThrownItem
- type: Sprite
netsync: false
sprite: Objects/Consumable/Food/pie.rsi
state: icon
- type: SolutionContainer
contents:
reagents:
- ReagentId: chem.Nutriment
Quantity: 8

View File

@@ -0,0 +1,14 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Taken from https://github.com/tgstation/tgstation at dc9cef40447ee86c2b9fff9f690385cd63b655fa",
"states": [
{
"name": "piecannon"
},
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B