diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/lavaland.yml b/Resources/Prototypes/Entities/Mobs/NPCs/lavaland.yml new file mode 100644 index 0000000000..aa6d63820b --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/NPCs/lavaland.yml @@ -0,0 +1,149 @@ +- type: entity + name: watcher + id: MobWatcherBase + parent: SimpleSpaceMobBase + abstract: true + description: It's like its staring right through you. + components: + - type: NpcFactionMember + factions: + - SimpleHostile + - type: HTN + rootTask: + task: SimpleRangedHostileCompound + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/Lavaland/watcher.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: base + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: unshaded + shader: unshaded + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.30 + density: 80 + mask: + - FlyingMobMask + layer: + - FlyingMobLayer + - type: DamageStateVisuals + states: + Alive: + Base: base + BaseUnshaded: unshaded + Dead: + Base: dead + BaseUnshaded: dead-unshaded + - type: MobThresholds + thresholds: + 0: Alive + 50: Dead + - type: MovementSpeedModifier + baseWalkSpeed: 5 + baseSprintSpeed: 7 + - type: MovementAlwaysTouching + - type: NoSlip + - type: ProjectileBatteryAmmoProvider + proto: WatcherBolt + fireCost: 50 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 50 + - type: Battery + maxCharge: 1000 + startingCharge: 1000 + - type: Gun + fireRate: 0.5 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: /Audio/Weapons/Guns/Gunshots/taser2.ogg + - type: CombatMode + - type: InteractionPopup + successChance: 0.3 + interactSuccessString: petting-success-slimes + interactFailureString: petting-failure-generic + interactSuccessSound: + path: /Audio/Animals/lizard_happy.ogg + +- type: entity + id: MobWatcherLavaland + parent: MobWatcherBase + components: + - type: Sprite + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: base + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: unshaded + shader: unshaded + color: red + - type: PointLight + radius: 1.5 + energy: 0.5 + color: red + +- type: entity + id: MobWatcherIcewing + parent: MobWatcherBase + name: icewing watcher + components: + - type: Sprite + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: base + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: unshaded + shader: unshaded + color: deepskyblue + - type: PointLight + radius: 1.5 + energy: 1 + color: deepskyblue + +- type: entity + id: MobWatcherMagmawing + parent: MobWatcherBase + name: magmawing watcher + components: + - type: Sprite + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: base + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: unshaded + shader: unshaded + color: orangered + - type: PointLight + radius: 1.5 + energy: 1 + color: orangered + - type: ProjectileBatteryAmmoProvider + proto: WatcherBoltMagmawing + fireCost: 50 + +- type: entity + id: MobWatcherPride + parent: MobWatcherBase + name: pride watcher + suffix: ADMEME + description: This rare subspecies only appears in June. + components: + - type: Sprite + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: base + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: unshaded + shader: unshaded + - type: PointLight + radius: 1.5 + energy: 1 + - type: RgbLightController + layers: [ 1 ] diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml index f8678a2f22..d70b05bf61 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml @@ -34,6 +34,25 @@ tags: - HideContextMenu +- type: entity + id: BulletImpactEffectOrangeDisabler + noSpawn: true + components: + - type: TimedDespawn + lifetime: 0.2 + - type: Sprite + drawdepth: Effects + layers: + - shader: unshaded + map: ["enum.EffectLayers.Unshaded"] + sprite: Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi + state: impact_laser_greyscale + color: orangered + - type: EffectVisuals + - type: Tag + tags: + - HideContextMenu + - type: entity id: BulletImpactEffectKinetic noSpawn: true diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 0b86ff6752..bf83498321 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -278,7 +278,6 @@ noSpawn: true components: - type: Sprite - color: "#ffff33" sprite: Structures/Power/Generation/Singularity/emitter.rsi layers: - state: projectile @@ -307,6 +306,65 @@ - type: TimedDespawn lifetime: 3 +- type: entity + name: watcher bolt + id: WatcherBolt + parent: BaseBullet + noSpawn: true + components: + - type: FlyBySound + sound: + collection: EnergyMiss + params: + volume: 5 + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi + layers: + - state: omnilaser + shader: unshaded + - type: Ammo + muzzleFlash: null + - type: Physics + - type: Fixtures + fixtures: + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.2,0.2,0.2" + hard: false + mask: + - Opaque + fly-by: *flybyfixture + - type: StaminaDamageOnCollide + damage: 40 + - type: Projectile + # soundHit: Waiting on serv3 + impactEffect: BulletImpactEffectDisabler + damage: + types: + Cold: 10 + - type: TimedDespawn + lifetime: 3 + +- type: entity + name: magmawing watcher bolt + id: WatcherBoltMagmawing + parent: BaseBullet + noSpawn: true + components: + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi + layers: + - state: omnilaser_greyscale + shader: unshaded + color: orangered + - type: Projectile + # soundHit: Waiting on serv3 + impactEffect: BulletImpactEffectOrangeDisabler + damage: + types: + Heat: 10 + - type: entity id: BulletKinetic name: kinetic bolt @@ -450,7 +508,7 @@ shader: unshaded - type: AnomalousParticle particleType: Zeta - + - type: entity parent: AnomalousParticleZeta id: AnomalousParticleZetaStrong diff --git a/Resources/Prototypes/Procedural/biome_markers.yml b/Resources/Prototypes/Procedural/biome_markers.yml index 3eeddea2b3..f1bc60a069 100644 --- a/Resources/Prototypes/Procedural/biome_markers.yml +++ b/Resources/Prototypes/Procedural/biome_markers.yml @@ -3,6 +3,21 @@ proto: MobLizard groupCount: 5 +- type: biomeMarkerLayer + id: WatchersLavaland + proto: MobWatcherLavaland + groupCount: 3 + +- type: biomeMarkerLayer + id: WatchersIcewing + proto: MobWatcherIcewing + groupCount: 3 + +- type: biomeMarkerLayer + id: WatchersMagmawing + proto: MobWatcherMagmawing + groupCount: 3 + # TODO: Needs to be more robust - type: biomeMarkerLayer id: Xenos diff --git a/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/base.png b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/base.png new file mode 100644 index 0000000000..7ca0ca21f4 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/base.png differ diff --git a/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/dead-unshaded.png b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/dead-unshaded.png new file mode 100644 index 0000000000..9ca59ddcfd Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/dead-unshaded.png differ diff --git a/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/dead.png b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/dead.png new file mode 100644 index 0000000000..b725511936 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/dead.png differ diff --git a/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/meta.json b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/meta.json new file mode 100644 index 0000000000..20360f4df2 --- /dev/null +++ b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Citadel Station 13 at https://github.com/Citadel-Station-13/Citadel-Station-13/blob/a36c4fd163b1f36a3aaf766e32183ccb6304a561/icons/mob/lavaland/watcher.dmi. Cut into layers/modified by mirrorcult for SS14", + "size": { + "x": 54, + "y": 32 + }, + "states": [ + { + "name": "base", + "directions": 4 + }, + { + "name": "unshaded", + "directions": 4 + }, + { + "name": "dead" + }, + { + "name": "dead-unshaded" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/unshaded.png b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/unshaded.png new file mode 100644 index 0000000000..cb2cba29c8 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/Lavaland/watcher.rsi/unshaded.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/impact_laser_greyscale.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/impact_laser_greyscale.png new file mode 100644 index 0000000000..a2bdccf882 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/impact_laser_greyscale.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/meta.json index 7cc3964b24..f87ad790f6 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/meta.json @@ -10,6 +10,9 @@ { "name": "omnilaser" }, + { + "name": "omnilaser_greyscale" + }, { "name": "impact_bullet", "delays": [ @@ -32,6 +35,17 @@ 0.05 ] ] + }, + { + "name": "impact_laser_greyscale", + "delays": [ + [ + 0.05, + 0.05, + 0.05, + 0.05 + ] + ] } ] } \ No newline at end of file diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/omnilaser_greyscale.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/omnilaser_greyscale.png new file mode 100644 index 0000000000..5f4efba75e Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/omnilaser_greyscale.png differ