Новая HellspawnBoss Арена (#3489)
This commit is contained in:
parent
b5c2efd0d3
commit
bc354f0587
19 changed files with 5753 additions and 23 deletions
|
|
@ -33,6 +33,8 @@ using Robust.Shared.EntitySerialization.Systems;
|
|||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Timing;
|
||||
using Robust.Shared.Utility;
|
||||
using System.Numerics;
|
||||
using Robust.Shared.Maths;
|
||||
|
||||
namespace Content.Server._Sunrise.Boss.Systems;
|
||||
|
||||
|
|
@ -132,7 +134,7 @@ public sealed class HellSpawnArenaSystem : SharedHellSpawnArenaSystem
|
|||
return false;
|
||||
}
|
||||
|
||||
entityUid = Spawn("MobHellspawnBoss", new EntityCoordinates(Arena.Value, 0.5f, 0.5f));
|
||||
entityUid = Spawn("MobHellspawnBossSpawn", new EntityCoordinates(Arena.Value, 0.5f, 0.5f));
|
||||
var fighters = EntityQuery<HellSpawnFighterComponent>().ToList().Count;
|
||||
return true;
|
||||
}
|
||||
|
|
@ -334,13 +336,32 @@ public sealed class HellSpawnArenaSystem : SharedHellSpawnArenaSystem
|
|||
/// <summary>
|
||||
/// Заспавнить культистов(а). Сделано для упрощения изменения поведения босса.
|
||||
/// </summary>
|
||||
private async void OnSpawnCultists()
|
||||
private void OnSpawnCultists()
|
||||
{
|
||||
if (Arena == null)
|
||||
return;
|
||||
|
||||
var uid = Spawn("HellSpawnCultist", new EntityCoordinates(Arena.Value, 0.5f, 0.5f));
|
||||
ApplyProtection(uid);
|
||||
var center = new EntityCoordinates(Arena.Value, 0.5f, 0.5f);
|
||||
|
||||
var main = Spawn("HellSpawnCultist", center);
|
||||
ApplyProtection(main);
|
||||
|
||||
var dummySpawns = new[]
|
||||
{
|
||||
new EntityCoordinates(Arena.Value, 0.5f, 2.5f), // north (+2)
|
||||
new EntityCoordinates(Arena.Value, 0.5f, -1.5f), // south (-2)
|
||||
new EntityCoordinates(Arena.Value, 2.25f, 0.5f), // east (+1.75)
|
||||
new EntityCoordinates(Arena.Value, -1.25f, 0.5f), // west (-1.75)
|
||||
};
|
||||
|
||||
foreach (var coords in dummySpawns)
|
||||
{
|
||||
var dummy = Spawn("HellSpawnCultistDummy", coords);
|
||||
ApplyProtection(dummy);
|
||||
|
||||
var dir = center.Position - coords.Position;
|
||||
_transform.SetLocalRotation(dummy, Angle.FromWorldVec(dir));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ public abstract class SharedHellSpawnArenaSystem : EntitySystem
|
|||
public EntityUid? Arena;
|
||||
public MapId? ArenaMap;
|
||||
|
||||
public TimeSpan CooldownLength = TimeSpan.FromSeconds(3);
|
||||
public TimeSpan CooldownLength = TimeSpan.FromSeconds(4);
|
||||
public HashSet<EntityUid> MarkedTargets = new();
|
||||
public ResPath ShuttlePath = new("/Maps/_Sunrise/arena.yml");
|
||||
public ResPath ShuttlePath = new("/Maps/_Sunrise/Nonstations/roundel-arena.yml");
|
||||
public List<EntityUid> Shuttles = [];
|
||||
|
||||
/// <inheritdoc />
|
||||
|
|
|
|||
|
|
@ -4,3 +4,5 @@ ent-WallAbductorDiagonal = shuttle wall
|
|||
ent-WallAbductor = shuttle wall
|
||||
.suffix = Reinforced, Exterior
|
||||
.desc = { ent-BaseWall.desc }
|
||||
ent-WallCultIndestructible = { ent-WallCult }
|
||||
.desc = { ent-WallCult.desc }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
advertisement-narsie-1 = TOK-LYR RQA-NAP G'OLT-ULOFT!
|
||||
advertisement-narsie-2 = Khari'd! Eske'te tannin!
|
||||
advertisement-narsie-3 = Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!
|
||||
advertisement-narsie-4 = N'ath reth sh'yro eth d'rekkathnor!
|
||||
advertisement-narsie-5 = Sas'so c'arta forbici!
|
||||
advertisement-narsie-6 = Qu'laris ver'don, thal'sorin mik'thar!
|
||||
advertisement-narsie-7 = O'velikin sup'navaril, thral'kar!
|
||||
advertisement-narsie-8 = Savrae ines amutan. Yam'toth remium il'tarat!
|
||||
|
|
@ -1,9 +1,13 @@
|
|||
ent-MobHellspawnBossSpawn = { ent-MobHellspawn }
|
||||
.desc = { ent-MobHellspawn.desc }
|
||||
ent-MobHellspawnBoss = { ent-MobHellspawn }
|
||||
.desc = { ent-MobHellspawn.desc }
|
||||
ent-ComputerBossTravel = алтарь битвы с боссом
|
||||
.desc = { ent-AltarFangs.desc }
|
||||
ent-HellSpawnCultist = { ent-MobHuman }
|
||||
.desc = { ent-MobHuman.desc }
|
||||
ent-HellSpawnCultistDummy = { ent-MobHuman }
|
||||
.desc = { ent-MobHuman.desc }
|
||||
ent-BulletSkyFlare = шар пламени
|
||||
.suffix = Босс
|
||||
.desc = { ent-BaseBulletIncendiary.desc }
|
||||
|
|
|
|||
|
|
@ -4,3 +4,5 @@ ent-WallAbductorDiagonal = стена шаттла абдукторов
|
|||
ent-WallAbductor = стена шаттла абдукторов
|
||||
.suffix = Укрепленная, Внешняя
|
||||
.desc = { ent-BaseWall.desc }
|
||||
ent-WallCultIndestructible = { ent-WallCult }
|
||||
.desc = Удерживает воздух внутри, а культистов снаружи. Похоже особым образом зачарована магией крови.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
advertisement-narsie-1 = TOK-LYR RQA-NAP G'OLT-ULOFT!
|
||||
advertisement-narsie-2 = Khari'd! Eske'te tannin!
|
||||
advertisement-narsie-3 = Pasnar val'keriam usinar!
|
||||
advertisement-narsie-4 = N'ath reth sh'yro eth d'rekkathnor!
|
||||
advertisement-narsie-5 = Sas'so c'arta forbici!
|
||||
advertisement-narsie-6 = Qu'laris ver'don, thal'sorin mik'thar!
|
||||
advertisement-narsie-7 = O'velikin sup'navaril, thral'kar!
|
||||
advertisement-narsie-8 = Savrae ines amutan. Yam'toth remium il'tarat!
|
||||
2302
Resources/Maps/_Sunrise/Nonstations/arena.yml
Normal file
2302
Resources/Maps/_Sunrise/Nonstations/arena.yml
Normal file
File diff suppressed because it is too large
Load diff
3166
Resources/Maps/_Sunrise/Nonstations/roundel-arena.yml
Normal file
3166
Resources/Maps/_Sunrise/Nonstations/roundel-arena.yml
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -10,7 +10,7 @@
|
|||
- Wall
|
||||
components:
|
||||
- type: Anchorable
|
||||
flags:
|
||||
flags:
|
||||
- Anchorable
|
||||
- type: Rotatable
|
||||
- type: RangedDamageSound
|
||||
|
|
@ -259,7 +259,7 @@
|
|||
behaviors:
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
Girder:
|
||||
CultGirder: # sunrise-edit
|
||||
min: 1
|
||||
max: 1
|
||||
- !type:DoActsBehavior
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@
|
|||
behaviors:
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
SheetSteel1:
|
||||
CultRunicMetal1:
|
||||
min: 1
|
||||
max: 1
|
||||
- !type:DoActsBehavior
|
||||
|
|
|
|||
|
|
@ -1,4 +1,49 @@
|
|||
- type: entity
|
||||
# spawn animation, spawns actual narsie when it ends
|
||||
- type: entity
|
||||
id: MobHellspawnBossSpawn
|
||||
suffix: Spawn
|
||||
components:
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: Mobs/Demons/hellspawn.rsi
|
||||
layers:
|
||||
- state: spawn
|
||||
- state: spawn_unshaded
|
||||
shader: unshaded
|
||||
drawdepth: Ghosts
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: Physics
|
||||
bodyType: Static
|
||||
canCollide: false
|
||||
- type: TimedDespawn
|
||||
lifetime: 3.2
|
||||
- type: SpawnOnDespawn
|
||||
prototype: MobHellspawnBoss
|
||||
- type: AmbientSound
|
||||
range: 13
|
||||
volume: 15
|
||||
sound:
|
||||
path: /Audio/Animals/space_dragon_roar.ogg
|
||||
- type: PointLight
|
||||
radius: 1.6
|
||||
energy: 4.5
|
||||
color: "#ff4242"
|
||||
castShadows: false
|
||||
- type: TriggerOnSpawn
|
||||
- type: TimerTrigger
|
||||
delay: 1
|
||||
- type: ExplodeOnTrigger
|
||||
keysIn: [timer]
|
||||
- type: Explosive
|
||||
explosionType: JustStructuralCharge
|
||||
totalIntensity: 125
|
||||
intensitySlope: 5
|
||||
maxIntensity: 75
|
||||
deleteAfterExplosion: false
|
||||
canCreateVacuum: false
|
||||
|
||||
- type: entity
|
||||
parent: MobHellspawn
|
||||
id: MobHellspawnBoss
|
||||
# categories: [ HideSpawnMenu ]
|
||||
|
|
@ -37,7 +82,7 @@
|
|||
0: Alive
|
||||
750: Dead
|
||||
- type: Stamina
|
||||
critThreshold: 175
|
||||
critThreshold: 450
|
||||
stunTime: 2
|
||||
- type: AmbientSound
|
||||
sound: /Audio/Ambience/ambiodd.ogg
|
||||
|
|
@ -76,6 +121,7 @@
|
|||
hidden: true
|
||||
soundHit:
|
||||
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
|
||||
bluntStaminaDamageFactor: 1.2
|
||||
damage:
|
||||
types:
|
||||
Blunt: 40
|
||||
|
|
@ -107,6 +153,14 @@
|
|||
prob: 0.2
|
||||
- id: LeftArmCyberGorillaUpgraded
|
||||
prob: 0.15
|
||||
- id: CultPylon
|
||||
prob: 0.1
|
||||
- id: ReaperCultPylon
|
||||
prob: 0.1
|
||||
- id: NarbeeCultPylon
|
||||
prob: 0.1
|
||||
- id: NarsieCultPylon
|
||||
prob: 0.1
|
||||
# Meme
|
||||
- id: ClothingNeckGoldmedal
|
||||
prob: 0.5
|
||||
|
|
@ -128,6 +182,12 @@
|
|||
prob: 0.1
|
||||
- id: ResearchDiskDebug
|
||||
prob: 0.05
|
||||
- id: ClothingHeadHatUshanka
|
||||
prob: 0.2
|
||||
- id: PFigurineChaminaM
|
||||
prob: 0.01
|
||||
- id: PFigurinePirateJugger
|
||||
prob: 0.01
|
||||
# Armors
|
||||
- id: ClothingOuterHardsuitSalvage
|
||||
prob: 0.25
|
||||
|
|
@ -138,18 +198,32 @@
|
|||
- id: ClothingOuterSoftsuitCBURN
|
||||
prob: 0.1
|
||||
# Weapons
|
||||
- id: WeaponLaserGun
|
||||
prob: 0.05
|
||||
- id: WeaponSubMachineGunPPSH
|
||||
prob: 0.05
|
||||
- id: WeaponSniperDragunov
|
||||
prob: 0.05
|
||||
- id: WeaponLightMachineGunDP28
|
||||
prob: 0.05
|
||||
- id: Musket
|
||||
prob: 0.05
|
||||
- id: WeaponRevolverPirate
|
||||
prob: 0.05
|
||||
- id: WeaponPistolFlintlock
|
||||
prob: 0.05
|
||||
- id: WeaponShotgunGA12
|
||||
prob: 0.2
|
||||
prob: 0.05
|
||||
- id: WeaponPistolM1984
|
||||
prob: 0.15
|
||||
prob: 0.05
|
||||
- id: ClothingHandsPowerGlovesNoUplink
|
||||
prob: 0.25
|
||||
prob: 0.05
|
||||
- id: WeaponMeleeMoltenCollider
|
||||
prob: 0.2
|
||||
prob: 0.05
|
||||
- id: WeaponMeleeMoltenAmputator
|
||||
prob: 0.15
|
||||
prob: 0.05
|
||||
- id: WeaponShotgunCycler
|
||||
prob: 0.1
|
||||
prob: 0.05
|
||||
- id: HyperEutacticBlade
|
||||
prob: 0.05
|
||||
# Boss lunch
|
||||
|
|
@ -214,7 +288,7 @@
|
|||
- type: entity
|
||||
id: HellSpawnCultist
|
||||
parent: MobHuman
|
||||
categories: [ HideSpawnMenu ]
|
||||
# categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
|
|
@ -228,7 +302,59 @@
|
|||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
5: Dead
|
||||
50: Dead
|
||||
- type: PassiveDamage
|
||||
allowedStates:
|
||||
- Alive
|
||||
damageCap: 50
|
||||
damage:
|
||||
types:
|
||||
Blunt: 3.75
|
||||
- type: AmbientSound
|
||||
range: 13
|
||||
volume: -5
|
||||
sound:
|
||||
path: /Audio/_Sunrise/BloodCult/narsie_summoned.ogg
|
||||
|
||||
- type: entity
|
||||
id: HellSpawnCultistDummy
|
||||
parent: MobHuman
|
||||
# categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: NpcFactionMember
|
||||
factions:
|
||||
- Syndicate
|
||||
- type: Loadout
|
||||
prototypes:
|
||||
- CultistGear
|
||||
- type: RandomHumanoidAppearance
|
||||
randomizeName: true
|
||||
- type: TimedDespawn
|
||||
lifetime: 15
|
||||
- type: SpawnOnDespawn
|
||||
prototype: CultTeleportOutEffect
|
||||
- type: AmbientSound
|
||||
range: 6
|
||||
volume: 2
|
||||
sound:
|
||||
path: /Audio/_Sunrise/BloodCult/enter_blood.ogg
|
||||
- type: MobThresholds
|
||||
thresholds:
|
||||
0: Alive
|
||||
75: Dead
|
||||
- type: PointLight
|
||||
radius: 1
|
||||
energy: 2
|
||||
color: "#ff4242"
|
||||
castShadows: false
|
||||
- type: ExplosionResistance
|
||||
damageCoefficient: 0.3
|
||||
- type: Vocalizer
|
||||
minVocalizeInterval: 3s
|
||||
maxVocalizeInterval: 6s
|
||||
hideChat: true
|
||||
- type: DatasetVocalizer
|
||||
dataset: NarSieAds
|
||||
|
||||
- type: entity
|
||||
parent: BaseBulletIncendiary
|
||||
|
|
|
|||
|
|
@ -27,3 +27,9 @@
|
|||
values:
|
||||
prefix: advertisement-liberation-
|
||||
count: 31
|
||||
|
||||
- type: localizedDataset
|
||||
id: NarSieAds
|
||||
values:
|
||||
prefix: advertisement-narsie-
|
||||
count: 8
|
||||
|
|
|
|||
|
|
@ -86,3 +86,16 @@
|
|||
- type: Appearance
|
||||
- type: Ricochetable
|
||||
chance: 1
|
||||
|
||||
- type: entity
|
||||
parent: WallPlastitaniumIndestructible
|
||||
id: WallCultIndestructible
|
||||
name: cult wall
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Structures/Walls/cult.rsi
|
||||
- type: Icon
|
||||
sprite: Structures/Walls/cult.rsi
|
||||
- type: IconSmooth
|
||||
key: walls
|
||||
base: cult
|
||||
|
|
|
|||
|
|
@ -141,3 +141,14 @@
|
|||
# STOP
|
||||
# BEFORE YOU ADD MORE EXPLOSION TYPES CONSIDER IF AN EXISTING ONE IS SUITABLE
|
||||
# ADDING NEW ONES IS PROHIBITIVELY EXPENSIVE
|
||||
# Sunrose-start
|
||||
- type: explosion # Увы, все из-за любителей абуза с РСУ # Sunrise-TODO: Удалить это когда-нибудь
|
||||
id: JustStructuralCharge
|
||||
damagePerIntensity:
|
||||
types:
|
||||
Heat: 1
|
||||
Structural: 25
|
||||
lightColor: Red
|
||||
fireColor: Red
|
||||
texturePath: /Textures/Effects/fire_greyscale.rsi
|
||||
# Sunrose-end
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
"y": 64
|
||||
},
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Made by brainfood1183 (github) for ss14",
|
||||
"copyright": "Made by brainfood1183 (github) for ss14 spawn state sprited by KaiserMaus(github)",
|
||||
"states": [
|
||||
{
|
||||
"name": "dead"
|
||||
|
|
@ -13,6 +13,66 @@
|
|||
{
|
||||
"name": "alive",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "spawn",
|
||||
"delays": [
|
||||
[
|
||||
0.3,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
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.05,
|
||||
0.05,
|
||||
0.05,
|
||||
0.05,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "spawn_unshaded",
|
||||
"delays": [
|
||||
[
|
||||
0.3,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
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.05,
|
||||
0.05,
|
||||
0.05,
|
||||
0.05,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
BIN
Resources/Textures/Mobs/Demons/hellspawn.rsi/spawn.png
Normal file
BIN
Resources/Textures/Mobs/Demons/hellspawn.rsi/spawn.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
BIN
Resources/Textures/Mobs/Demons/hellspawn.rsi/spawn_unshaded.png
Normal file
BIN
Resources/Textures/Mobs/Demons/hellspawn.rsi/spawn_unshaded.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
|
|
@ -199,5 +199,6 @@ ignore_files:
|
|||
- role-types.ftl
|
||||
- rmobjective.ftl
|
||||
- persistence-save-command.ftl
|
||||
- 'xeno_last.ftl'
|
||||
- 'xeno_first.ftl'
|
||||
- xeno_last.ftl
|
||||
- xeno_first.ftl
|
||||
- narsie.ftl
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue