Magic staves + wands (#9070)

This commit is contained in:
Kara
2022-07-14 19:45:27 -07:00
committed by GitHub
parent 9608005db0
commit ad7889e8a9
85 changed files with 1299 additions and 34 deletions

View File

@@ -98,5 +98,16 @@
amount: 2
- id: OmnizineChemistryBottle
amount: 1
- id: MedkitCombatFilled
- id: MedkitCombatFilled
- type: entity
parent: ClothingBeltWand
id: ClothingBeltWandFilled
suffix: Filled
components:
- type: StorageFill
contents:
- id: WeaponWandPolymorphCarp
- id: WeaponWandFireball
- id: WeaponWandDeath
- id: WeaponWandPolymorphDoor

View File

@@ -503,3 +503,19 @@
- type: Clothing
sprite: Clothing/Belt/suspenders.rsi
quickEquip: true
- type: entity
parent: ClothingBeltStorageBase
id: ClothingBeltWand
name: wand belt
description: A belt designed to hold various rods of power. A veritable fanny pack of exotic magic.
components:
- type: Sprite
sprite: Clothing/Belt/wand.rsi
- type: Clothing
sprite: Clothing/Belt/wand.rsi
- type: Storage
capacity: 120
whitelist:
tags:
- WizardWand

View File

@@ -69,6 +69,9 @@
- type: TypingIndicator
proto: alien
- type: NoSlip
- type: Tag
tags:
- Carp
- type: entity
name: magicarp

View File

@@ -0,0 +1,23 @@
- type: entity
id: WeaponStaffBase
abstract: true
parent: BaseItem
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Magic/staves.rsi
- type: Item
sprite: Objects/Weapons/Guns/Magic/staves.rsi
HeldPrefix: staff
size: 60
- type: Gun
fireRate: 1
selectedMode: SemiAuto
availableModes:
- SemiAuto
- type: AmmoCounter
# All staves recharge. Wands are not.
- type: RechargeBasicEntityAmmo
- type: Tag
tags:
- WizardStaff

View File

@@ -0,0 +1,28 @@
- type: entity
id: WeaponWandBase
abstract: true
parent: BaseItem
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Magic/wands.rsi
- type: Item
sprite: Objects/Weapons/Guns/Magic/wands.rsi
HeldPrefix: wand
size: 30
- type: Gun
fireRate: 0.5
selectedMode: SemiAuto
availableModes:
- SemiAuto
- type: AmmoCounter
# These will only do anything if the effect layer is actually set.
- type: Appearance
- type: GenericVisualizer
visuals:
enum.AmmoVisuals.HasAmmo:
effect:
True: { visible: True }
False: { visible: False }
- type: Tag
tags:
- WizardWand

View File

@@ -0,0 +1,37 @@
# To be implemented: see #9072
- type: entity
name: staff of healing
parent: WeaponStaffBase
id: WeaponStaffHealing
description: You don't foresee having to use this in your quest for carnage too often.
components:
- type: Sprite
layers:
- state: healing
- type: Item
HeldPrefix: healing
- type: Gun
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/Magic/staff_healing.ogg
- type: BasicEntityAmmoProvider
proto: ProjectileHealingBolt
capacity: 10
- type: entity
name: staff of entrance
parent: WeaponStaffBase
id: WeaponStaffPolymorphDoor
description: For when you need a get-away route.
components:
- type: Sprite
layers:
- state: door
- type: Item
HeldPrefix: door
- type: Gun
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/Magic/staff_door.ogg
- type: BasicEntityAmmoProvider
proto: ProjectilePolyboltDoor
capacity: 10

View File

@@ -0,0 +1,72 @@
- type: entity
name: wand of carp polymorph
parent: WeaponWandBase
id: WeaponWandPolymorphCarp
description: For when you need a carp filet quick and the clown is looking juicy.
components:
- type: Sprite
layers:
- state: poly
- state: poly-effect
map: ["effect"]
- type: Gun
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/Magic/staff_animation.ogg
- type: BasicEntityAmmoProvider
proto: ProjectilePolyboltCarp
capacity: 5
- type: entity
name: wand of fireball
parent: WeaponWandBase
id: WeaponWandFireball
description: Great big balls of fire!
components:
- type: Sprite
layers:
- state: fire
- state: fire-effect
map: ["effect"]
- type: Gun
fireRate: 0.25
soundGunshot:
path: /Audio/Magic/fireball.ogg
- type: BasicEntityAmmoProvider
proto: ProjectileFireball
capacity: 5
- type: entity
name: magical wand of instant death
parent: WeaponWandBase
id: WeaponWandDeath
description: Only the best and brightest of the Space Wizards R&D team worked together to create this beauty.
components:
- type: Sprite
layers:
- state: death
- state: death-effect
map: ["effect"]
- type: Gun
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/mateba.ogg # PUNCH
- type: BasicEntityAmmoProvider
proto: BulletInstakillMagic
capacity: 3
- type: entity
name: wand of entrance
parent: WeaponWandBase
id: WeaponWandPolymorphDoor
description: For when you need a get-away route.
components:
- type: Sprite
layers:
- state: door
- state: door-effect
map: ["effect"]
- type: Gun
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/Magic/staff_door.ogg
- type: BasicEntityAmmoProvider
proto: ProjectilePolyboltDoor
capacity: 10

View File

@@ -15,3 +15,87 @@
intensitySlope: 6
totalIntensity: 200
maxTileBreak: 0
- type: entity
id: ProjectilePolyboltCarp
name: carp polybolt
description: Nooo, I don't wanna be fish!
parent: BaseBullet
noSpawn: true
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
layers:
- state: spell
color: '#00FF00'
- type: PolymorphOnCollide
polymorph: WizardForcedCarp
whitelist:
components:
- Body
blacklist:
tags:
- Carp # can't re-polymorph
- type: Projectile
damage:
types:
Poison: 5
- type: entity
id: ProjectilePolyboltDoor
name: door polybolt
description: Nooo, I don't wanna be door!
parent: BaseBullet
noSpawn: true
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
layers:
- state: spell
color: brown
- type: PolymorphOnCollide
polymorph: WizardWallDoor
whitelist:
components:
- Airlock
- Firelock
tags:
- Wall
- type: Projectile
damage:
types:
Poison: 5
- type: entity
id: ProjectileHealingBolt
name: healing bolt
description: I COMMAND YOU TO LIVE!
parent: BaseBullet
noSpawn: true
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Projectiles/magic.rsi
layers:
- state: spell
color: white
- type: Projectile
damage:
groups: # good enough. Maybe make it call the rejuvenate command later.
Brute: -900
Burn: -900
Airloss: -600
Toxin: -600
ignoreResistances: true
- type: entity
id: BulletInstakillMagic
name: magical lead cylinder
parent: BaseBulletHighVelocity
noSpawn: true
description: This looks familiar.
components:
- type: Projectile
damage:
types:
Piercing: 300
ignoreResistances: true

View File

@@ -18,6 +18,26 @@
revertOnCrit: true
revertOnDeath: true
- type: polymorph
id: WizardForcedCarp
entity: MobCarpMagic
forced: true
inventory: None
transferName: true
transferDamage: true
revertOnCrit: false
revertOnDeath: true
- type: polymorph
id: WizardWallDoor
entity: WoodDoor
forced: true
inventory: None
transferName: false
transferDamage: false
revertOnCrit: false
revertOnDeath: false
# this is a test for transferring some visual appearance stuff
- type: polymorph
id: TestHumanMorph

View File

@@ -51,6 +51,9 @@
- type: Tag
id: CaptainSabre
- type: Tag
id: Carp
- type: Tag
id: Cartridge
@@ -426,6 +429,12 @@
- type: Tag
id: Window
- type: Tag
id: WizardWand # that evil vvizard vvand
- type: Tag
id: WizardStaff
- type: Tag
id: Wirecutter