Adds Onestar mech ghost-role enemy (#6943)
Co-authored-by: mirrorcult <lunarautomaton6@gmail.com> Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
@@ -114,6 +114,7 @@ namespace Content.Server.Weapon.Ranged.Ammunition.Components
|
|||||||
Pistol,
|
Pistol,
|
||||||
A35, // Placeholder?
|
A35, // Placeholder?
|
||||||
LRifle,
|
LRifle,
|
||||||
|
HRifle,
|
||||||
Magnum,
|
Magnum,
|
||||||
AntiMaterial,
|
AntiMaterial,
|
||||||
Shotgun,
|
Shotgun,
|
||||||
|
|||||||
@@ -151,3 +151,61 @@
|
|||||||
- type: Repairable
|
- type: Repairable
|
||||||
fuelcost: 15
|
fuelcost: 15
|
||||||
doAfterDelay: 8
|
doAfterDelay: 8
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: onestar mecha
|
||||||
|
id: Onestar
|
||||||
|
parent: PlayerSiliconBase
|
||||||
|
components:
|
||||||
|
- type: Drone
|
||||||
|
tools:
|
||||||
|
- id: Minigun
|
||||||
|
- id: EnergySword
|
||||||
|
- id: LauncherMultipleRocket
|
||||||
|
- id: XrayCannon
|
||||||
|
- type: UserInterface
|
||||||
|
interfaces:
|
||||||
|
- key: enum.StrippingUiKey.Key
|
||||||
|
type: StrippableBoundUserInterface
|
||||||
|
- type: GhostTakeoverAvailable
|
||||||
|
makeSentient: true
|
||||||
|
name: Onestar Mecha
|
||||||
|
description: You are an experimental mecha created by who-knows-what, all you know is that you have weapons and you detect fleshy moving targets nearby...
|
||||||
|
rules: Use your weapons to cause havok. You are an antagonist.
|
||||||
|
- type: MovementSpeedModifier
|
||||||
|
baseWalkSpeed : 3
|
||||||
|
baseSprintSpeed : 2
|
||||||
|
- type: MobState
|
||||||
|
thresholds:
|
||||||
|
0: !type:NormalMobState {}
|
||||||
|
1000: !type:DeadMobState {}
|
||||||
|
- type: Sprite
|
||||||
|
drawdepth: Mobs
|
||||||
|
netsync: false
|
||||||
|
layers:
|
||||||
|
- state: onestar_boss
|
||||||
|
sprite: Mobs/Silicon/onestar.rsi
|
||||||
|
- state: onestar_boss_screen
|
||||||
|
sprite: Mobs/Silicon/onestar.rsi
|
||||||
|
shader: unshaded
|
||||||
|
- type: MovementIgnoreGravity
|
||||||
|
- type: Fixtures
|
||||||
|
fixtures:
|
||||||
|
- shape:
|
||||||
|
!type:PhysShapeCircle
|
||||||
|
radius: 1
|
||||||
|
mass: 500
|
||||||
|
mask:
|
||||||
|
- SmallImpassable
|
||||||
|
- MobImpassable
|
||||||
|
- VaultImpassable
|
||||||
|
- Impassable
|
||||||
|
layer:
|
||||||
|
- Opaque
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: DamageStateVisualizer
|
||||||
|
rotate: true
|
||||||
|
normal: onestar_boss
|
||||||
|
dead: onestar_boss_wrecked
|
||||||
|
- type: CombatMode
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
- type: entity
|
||||||
|
id: CartridgeHRifleBase
|
||||||
|
name: cartridge (.20 rifle)
|
||||||
|
parent: BaseCartridge
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: Ammo
|
||||||
|
caliber: HRifle
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
noRot: false
|
||||||
|
sprite: Objects/Weapons/Guns/Ammunition/Casings/ammo_casing.rsi
|
||||||
|
layers:
|
||||||
|
- state: base
|
||||||
|
map: ["enum.AmmoVisualLayers.Base"]
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: SpentAmmoVisualizer
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: CartridgeMinigun
|
||||||
|
name: cartridge (.10 rifle)
|
||||||
|
parent: CartridgeHRifleBase
|
||||||
|
components:
|
||||||
|
- type: Ammo
|
||||||
|
projectile: BulletMinigun
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
- type: entity
|
||||||
|
id: MagazineHRifleBase
|
||||||
|
name: "magazine (.20 rifle)"
|
||||||
|
parent: BaseItem
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: RangedMagazine
|
||||||
|
caliber: HRifle
|
||||||
|
magazineType: Rifle
|
||||||
|
capacity: 100
|
||||||
|
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
layers:
|
||||||
|
- state: base
|
||||||
|
map: ["enum.RangedBarrelVisualLayers.Base"]
|
||||||
|
- state: mag-1
|
||||||
|
map: ["enum.RangedBarrelVisualLayers.Mag"]
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: MagVisualizer
|
||||||
|
magState: mag
|
||||||
|
steps: 2
|
||||||
|
zeroVisible: false
|
||||||
|
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: MagazineMinigun
|
||||||
|
name: "Minigun magazine box (.10 rifle)"
|
||||||
|
parent: MagazineHRifleBase
|
||||||
|
components:
|
||||||
|
- type: RangedMagazine
|
||||||
|
fillPrototype: CartridgeMinigun
|
||||||
|
magazineType: Box
|
||||||
|
capacity: 1000
|
||||||
|
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Ammunition/Magazine/LRifle/l_rifle_box.rsi
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: MagVisualizer
|
||||||
|
magState: mag
|
||||||
|
steps: 8
|
||||||
|
zeroVisible: false
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
- type: entity
|
||||||
|
id: BulletHRifle
|
||||||
|
name: bullet (.20 rifle)
|
||||||
|
parent: BulletBase
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: Projectile
|
||||||
|
damage:
|
||||||
|
types:
|
||||||
|
Piercing: 28
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: BulletMinigun
|
||||||
|
name: minigun bullet (.10 rifle)
|
||||||
|
parent: BulletHRifle
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: Projectile
|
||||||
|
damage:
|
||||||
|
types:
|
||||||
|
Piercing: 5
|
||||||
@@ -84,3 +84,19 @@
|
|||||||
- type: Appearance
|
- type: Appearance
|
||||||
visuals:
|
visuals:
|
||||||
- type: SpentAmmoVisualizer
|
- type: SpentAmmoVisualizer
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: SlowRocketAmmo
|
||||||
|
name: PG-7VL grenade "Snail-Rocket"
|
||||||
|
parent: BaseItem
|
||||||
|
description: A 1.5 warhead designed for the RPG-7 launcher. It is unusually slow.
|
||||||
|
components:
|
||||||
|
- type: Ammo
|
||||||
|
caliber: Rocket
|
||||||
|
projectile: WeakBulletRocket
|
||||||
|
caseless: true
|
||||||
|
ammoVelocity: 4.5
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
sprite: Objects/Weapons/Guns/Ammunition/Explosives/rpg.rsi
|
||||||
|
state: frag
|
||||||
|
|||||||
@@ -0,0 +1,77 @@
|
|||||||
|
- type: entity
|
||||||
|
name: heavy machinegun
|
||||||
|
parent: BaseItem
|
||||||
|
id: HMGBase
|
||||||
|
description: Spray and pray
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
- type: Icon
|
||||||
|
state: icon
|
||||||
|
- type: Item
|
||||||
|
size: 24
|
||||||
|
- type: MagazineBarrel
|
||||||
|
currentSelector: Automatic
|
||||||
|
allSelectors:
|
||||||
|
- Automatic
|
||||||
|
caliber: HRifle
|
||||||
|
magazineTypes:
|
||||||
|
- Box
|
||||||
|
fireRate: 20
|
||||||
|
minAngle: 10
|
||||||
|
maxAngle: 45
|
||||||
|
angleIncrease: 10
|
||||||
|
angleDecay: 60
|
||||||
|
magNeedsOpenBolt: false
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Weapons/Guns/Gunshots/lmg.ogg
|
||||||
|
soundEmpty:
|
||||||
|
path: /Audio/Weapons/Guns/Empty/lmg_empty.ogg
|
||||||
|
soundRack:
|
||||||
|
path: /Audio/Weapons/Guns/Cock/lmg_cock.ogg
|
||||||
|
soundBoltOpen:
|
||||||
|
path: /Audio/Weapons/Guns/Bolt/rifle_bolt_open.ogg
|
||||||
|
soundBoltClosed:
|
||||||
|
path: /Audio/Weapons/Guns/Bolt/rifle_bolt_closed.ogg
|
||||||
|
soundAutoEject:
|
||||||
|
path: /Audio/Weapons/Guns/EmptyAlarm/lmg_empty_alarm.ogg
|
||||||
|
soundMagInsert:
|
||||||
|
path: /Audio/Weapons/Guns/MagIn/lmg_magin.ogg
|
||||||
|
soundMagEject:
|
||||||
|
path: /Audio/Weapons/Guns/MagOut/lmg_magout.ogg
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: minigun
|
||||||
|
id: Minigun
|
||||||
|
parent: HMGBase
|
||||||
|
description: Vzzzzzt! Rahrahrahrah! Vrrrrr!
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/HMGs/minigun.rsi
|
||||||
|
layers:
|
||||||
|
- state: base
|
||||||
|
map: ["enum.RangedBarrelVisualLayers.Base"]
|
||||||
|
- state: bolt-closed
|
||||||
|
map: ["enum.RangedBarrelVisualLayers.Bolt"]
|
||||||
|
- type: Icon
|
||||||
|
sprite: Objects/Weapons/Guns/HMGs/minigun.rsi
|
||||||
|
- type: Item
|
||||||
|
size: 24
|
||||||
|
sprite: Objects/Weapons/Guns/HMGs/minigun.rsi
|
||||||
|
- type: RangedWeapon
|
||||||
|
- type: MagazineBarrel
|
||||||
|
magFillPrototype: MagazineMinigun
|
||||||
|
fireRate: 15
|
||||||
|
minAngle: 0
|
||||||
|
maxAngle: 15
|
||||||
|
angleIncrease: 15
|
||||||
|
angleDecay: 60
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: BarrelBoltVisualizer
|
||||||
|
- type: MagVisualizer
|
||||||
|
magState: mag
|
||||||
|
steps: 4
|
||||||
|
zeroVisible: true
|
||||||
|
|
||||||
@@ -82,3 +82,45 @@
|
|||||||
magState: mag
|
magState: mag
|
||||||
steps: 1
|
steps: 1
|
||||||
zeroVisible: true
|
zeroVisible: true
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: multiple rocket launcher
|
||||||
|
parent: LauncherBase
|
||||||
|
id: LauncherMultipleRocket
|
||||||
|
description: A modified ancient rocket-propelled grenade launcher.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Weapons/Guns/Launchers/rocket.rsi
|
||||||
|
layers:
|
||||||
|
- state: base
|
||||||
|
map: ["enum.RangedBarrelVisualLayers.Base"]
|
||||||
|
- state: mag-0
|
||||||
|
map: ["enum.RangedBarrelVisualLayers.Mag"]
|
||||||
|
- type: Item
|
||||||
|
size: 24
|
||||||
|
sprite: Objects/Weapons/Guns/Launchers/rocket.rsi
|
||||||
|
- type: RangedWeapon
|
||||||
|
- type: RevolverBarrel
|
||||||
|
caliber: Rocket
|
||||||
|
currentSelector: Automatic
|
||||||
|
allSelectors:
|
||||||
|
- Single
|
||||||
|
fillPrototype: SlowRocketAmmo
|
||||||
|
fireRate: 6
|
||||||
|
minAngle: 0
|
||||||
|
maxAngle: 15
|
||||||
|
angleIncrease: 15
|
||||||
|
angleDecay: 60
|
||||||
|
capacity: 30
|
||||||
|
soundEmpty:
|
||||||
|
path: /Audio/Weapons/Guns/Empty/empty.ogg
|
||||||
|
soundGunshot:
|
||||||
|
path: /Audio/Weapons/Guns/Gunshots/rpgfire.ogg
|
||||||
|
soundInsert:
|
||||||
|
path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
|
||||||
|
- type: Appearance
|
||||||
|
visuals:
|
||||||
|
- type: MagVisualizer
|
||||||
|
magState: mag
|
||||||
|
steps: 1
|
||||||
|
zeroVisible: true
|
||||||
|
|||||||
@@ -196,6 +196,28 @@
|
|||||||
color: orange
|
color: orange
|
||||||
energy: 0.5
|
energy: 0.5
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: WeakBulletRocket
|
||||||
|
name: weak rocket
|
||||||
|
parent: TriggerBulletBase
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
netsync: false
|
||||||
|
sprite: Objects/Weapons/Guns/Projectiles/rocket.rsi
|
||||||
|
state: frag
|
||||||
|
- type: ExplodeOnTrigger
|
||||||
|
- type: Explosive
|
||||||
|
devastationRange: 0
|
||||||
|
heavyImpactRange: 0
|
||||||
|
lightImpactRange: 1
|
||||||
|
flashRange: 10
|
||||||
|
- type: PointLight
|
||||||
|
radius: 3.5
|
||||||
|
color: orange
|
||||||
|
energy: 0.5
|
||||||
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: BulletGrenadeBaton
|
id: BulletGrenadeBaton
|
||||||
name: baton grenade
|
name: baton grenade
|
||||||
|
|||||||
193
Resources/Textures/Mobs/Silicon/onestar.rsi/meta.json
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "https://github.com/discordia-space/CEV-Eris/pull/3768",
|
||||||
|
"size": {
|
||||||
|
"x": 64,
|
||||||
|
"y": 64
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "onestar_boss",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "onestar_boss_unpowered"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "onestar_boss_wrecked",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
3,
|
||||||
|
0.9,
|
||||||
|
0.9,
|
||||||
|
0.9,
|
||||||
|
0.9,
|
||||||
|
0.9
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "onestar_boss_screen",
|
||||||
|
"directions": 4,
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
6,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
6,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
6,
|
||||||
|
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,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
6,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
6,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
6,
|
||||||
|
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,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
6,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
6,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
6,
|
||||||
|
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,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
6,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
6,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
6,
|
||||||
|
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,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Mobs/Silicon/onestar.rsi/onestar_boss.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 825 B |
|
After Width: | Height: | Size: 825 B |
|
After Width: | Height: | Size: 825 B |
|
After Width: | Height: | Size: 580 B |
|
After Width: | Height: | Size: 825 B |
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "https://github.com/tgstation/tgstation/commit/a39e3f3f1f351e3be5ae955c4de3a2e8889e191b",
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "base",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "holstered"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "notholstered"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bolt-closed",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bolt-open",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "icon",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 389 B |