diff --git a/Content.Server/_CP14/Shuttles/CP14ExpeditionSystem.cs b/Content.Server/_CP14/Shuttles/CP14ExpeditionSystem.cs index 3ed4f482fa..1a01215286 100644 --- a/Content.Server/_CP14/Shuttles/CP14ExpeditionSystem.cs +++ b/Content.Server/_CP14/Shuttles/CP14ExpeditionSystem.cs @@ -29,6 +29,11 @@ public sealed class CP14ExpeditionSystem : EntitySystem /// public float ArrivalTime { get; private set; } + /// + /// If enabled then spawns players on an expedition ship. + /// + public bool Enabled { get; private set; } + public override void Initialize() { base.Initialize(); @@ -38,12 +43,17 @@ public sealed class CP14ExpeditionSystem : EntitySystem SubscribeLocalEvent(OnExpeditionShipLanded); ArrivalTime = _cfgManager.GetCVar(CCVars.CP14ExpeditionArrivalTime); - _cfgManager.OnValueChanged(CCVars.CP14ExpeditionArrivalTime, time => ArrivalTime = time, true); - } + Enabled = _cfgManager.GetCVar(CCVars.CP14ExpeditionShip); + _cfgManager.OnValueChanged(CCVars.CP14ExpeditionArrivalTime, time => ArrivalTime = time, true); + _cfgManager.OnValueChanged(CCVars.CP14ExpeditionShip, value => Enabled = value, true); + } private void OnPostInitSetupExpeditionShip(Entity station, ref StationPostInitEvent args) { + if (!Enabled) + return; + if (!Deleted(station.Comp.Shuttle)) return; @@ -97,6 +107,9 @@ public sealed class CP14ExpeditionSystem : EntitySystem public void HandlePlayerSpawning(PlayerSpawningEvent ev) { + if (!Enabled) + return; + if (ev.SpawnResult != null) return; diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index d28eb1b469..2986d5a7d1 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -11,11 +11,17 @@ namespace Content.Shared.CCVar public sealed class CCVars : CVars { #region CP14 - + /// + /// how long does it take to fly an expedition ship to an expedition point? + /// public static readonly CVarDef CP14ExpeditionArrivalTime = CVarDef.Create("cp14.arrival_time", 180f, CVar.SERVERONLY); - + /// + /// is the expedition ship's system enabled? + /// + public static readonly CVarDef CP14ExpeditionShip = + CVarDef.Create("cp14.arrivals_ship", true, CVar.SERVERONLY); #endregion /* * Server @@ -1500,7 +1506,7 @@ namespace Content.Shared.CCVar /// Whether the arrivals shuttle is enabled. /// public static readonly CVarDef ArrivalsShuttles = - CVarDef.Create("shuttle.arrivals", true, CVar.SERVERONLY); + CVarDef.Create("shuttle.arrivals", false, CVar.SERVERONLY); //CP14 arrivals disabled /// /// The map to use for the arrivals station. @@ -1627,7 +1633,7 @@ namespace Content.Shared.CCVar /// Whether the emergency shuttle is enabled or should the round just end. /// public static readonly CVarDef EmergencyShuttleEnabled = - CVarDef.Create("shuttle.emergency", true, CVar.SERVERONLY); + CVarDef.Create("shuttle.emergency", false, CVar.SERVERONLY); //CP14 Emergency disabled /// /// The percentage of time passed from the initial call to when the shuttle can no longer be recalled. diff --git a/Resources/ConfigPresets/Build/development.toml b/Resources/ConfigPresets/Build/development.toml index a1900dbaa2..8fb5165ba0 100644 --- a/Resources/ConfigPresets/Build/development.toml +++ b/Resources/ConfigPresets/Build/development.toml @@ -1,4 +1,7 @@ -[game] +[cp14] +arrivals_ship = false + +[game] # Straight in-game baby lobbyenabled = false # Dev map for faster loading & convenience diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/earth_wall.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/earth_wall.yml new file mode 100644 index 0000000000..69b54713f3 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/earth_wall.yml @@ -0,0 +1,89 @@ +- type: entity + id: CP14ActionSpellEarthWall + name: Earth wall + description: Raises a solid wall of earth from the bowels. + components: + - type: CP14MagicEffect + manaCost: 15 + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectEarthWall + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14WallSpawnEarthWall + - type: CP14MagicEffectVerbalAspect + startSpeech: "Surgite terram..." + endSpeech: "de profundis terrae" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneEarthWall + - type: WorldTargetAction + useDelay: 10 + range: 10 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: earth_wall + event: !type:CP14DelayedWorldTargetActionEvent + delay: 1 + +- type: entity + id: CP14RuneEarthWall + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#8f6a2b" + - type: Sprite + layers: + - state: medium_line + color: "#8f6a2b" + shader: unshaded + - state: medium_circle + color: "#8f6a2b" + shader: unshaded + +- type: entity + id: CP14ImpactEffectEarthWall + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: particles_up + color: "#8f6a2b" + shader: unshaded + +- type: entity + id: CP14WallSpawnEarthWall + noSpawn: True + placement: + mode: SnapgridCenter + components: + - type: Transform + anchored: True + - type: InteractionOutline + - type: Physics + bodyType: Static + - type: Sprite + offset: 0, 0.2 + sprite: _CP14/Effects/cubeup.rsi + state: cube_up + - type: Fixtures + fixtures: + portalFixture: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.48,0.25,0.48" + mask: + - FullTileMask + layer: + - WallLayer + hard: false + - type: TimedDespawn + lifetime: 1.2 + - type: SpawnOnDespawn + prototype: CP14WallDirt diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml new file mode 100644 index 0000000000..2bc9e89dfe --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml @@ -0,0 +1,70 @@ +- type: entity + id: CP14ActionSpellIceFloor + name: Ice floor + description: Covers a specified area of land with slippery ice. + components: + - type: CP14MagicEffect + manaCost: 10 + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectIceFloor + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14IceFloor + - type: CP14MagicEffectVerbalAspect + startSpeech: "Humus deorsum..." + endSpeech: "operietur glacie" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneIceFloor + - type: WorldTargetAction + useDelay: 5 + range: 5 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: ice_floor + event: !type:CP14DelayedWorldTargetActionEvent + delay: 1 + breakOnMove: false + +- type: entity + id: CP14RuneIceFloor + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#5eabeb" + - type: Sprite + layers: + - state: medium_circle + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14ImpactEffectIceFloor + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: particles_up + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14IceFloor + parent: IceCrust + name: ice crust + description: It's cold and slippery. + components: + - type: Slippery + paralyzeTime: 1 + launchForwardsMultiplier: 1.5 + - type: StepTrigger + intersectRatio: 0.2 + - type: CollisionWake + enabled: false diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml index 89a49463ae..c3a88edd7f 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml @@ -135,4 +135,40 @@ - type: CP14SpellStorageAccessWearing - type: CP14SpellStorage spells: - - CP14ActionSpellShadowGrab \ No newline at end of file + - CP14ActionSpellShadowGrab + +- type: entity + id: CP14ClothingRingEarthWall + parent: CP14ClothingRingBase + name: conductive ring + description: A standard mana-conductive ring that allows the user to heal physical injuries. + suffix: Earth wall + components: + - type: Sprite + layers: + - state: brass_ring + - state: berill_stone_small + - type: CP14SpellStorageRequireAttune + - type: CP14MagicAttuningItem + - type: CP14SpellStorageAccessWearing + - type: CP14SpellStorage + spells: + - CP14ActionSpellEarthWall + +- type: entity + id: CP14ClothingRingIceFloor + parent: CP14ClothingRingBase + name: conductive ring + description: A standard mana-conductive ring that allows the user to heal physical injuries. + suffix: Ice floor + components: + - type: Sprite + layers: + - state: brass_ring + - state: saphhire_stone_small + - type: CP14SpellStorageRequireAttune + - type: CP14MagicAttuningItem + - type: CP14SpellStorageAccessWearing + - type: CP14SpellStorage + spells: + - CP14ActionSpellIceFloor diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/battleHammer.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/battleHammer.yml index 827940c01b..a0df8fe71c 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/battleHammer.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/battleHammer.yml @@ -22,7 +22,7 @@ - type: MeleeWeapon angle: 120 attackRate: 0.7 - range: 1.8 + range: 1.6 wideAnimationRotation: 320 wideAnimation: CP14WeaponArcSlash damage: @@ -36,7 +36,7 @@ - type: IncreaseDamageOnWield damage: types: - Blunt: 9 + Blunt: 8 Structural: 10 - type: StaminaDamageOnHit damage: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/battleStaff.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/battleStaff.yml index 9340bed45c..730e6cf724 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/battleStaff.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/battleStaff.yml @@ -24,21 +24,21 @@ - type: IncreaseDamageOnWield damage: types: - Blunt: 5 + Blunt: 4 - type: MeleeWeapon angle: 100 attackRate: 1.3 - range: 1.5 + range: 1.3 wideAnimationRotation: -30 wideAnimation: CP14WeaponArcSlash damage: types: - Blunt: 5 + Blunt: 4 soundHit: collection: MetalThud cPAnimationLength: 0.3 cPAnimationOffset: -1.3 - type: StaminaDamageOnHit - damage: 12 + damage: 9 - type: CP14Currency currency: 20 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/twoHandedSword.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/twoHandedSword.yml index a9a0903617..24d4ab31c9 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/twoHandedSword.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Melee/twoHandedSword.yml @@ -66,4 +66,24 @@ sprite: _CP14/Objects/Weapons/Melee/TwoHandedSword/scythe.rsi - type: Tag tags: - - CP14HerbalGathering \ No newline at end of file + - CP14HerbalGathering + - type: MeleeWeapon + angle: 110 + attackRate: 0.6 + range: 1.4 + wideAnimationRotation: 205 + wideAnimation: CP14WeaponArcSlash + damage: + types: + Slash: 4 + Blunt: 3 + soundHit: + collection: MetalThud + cPAnimationLength: 0.6 + - type: Wieldable + - type: IncreaseDamageOnWield + damage: + types: + Slash: 6 + - type: CP14Currency + currency: 2000 diff --git a/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/berill_stone_small.png b/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/berill_stone_small.png new file mode 100644 index 0000000000..8a6a9b4636 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/berill_stone_small.png differ diff --git a/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/meta.json index 194224f1b3..e1ec44f32e 100644 --- a/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/meta.json +++ b/Resources/Textures/_CP14/Clothing/Rings/rings.rsi/meta.json @@ -21,6 +21,9 @@ }, { "name": "amethyst_stone_small" + }, + { + "name": "berill_stone_small" } ] } diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/earth_wall.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/earth_wall.png new file mode 100644 index 0000000000..63adcc90c6 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/earth_wall.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png new file mode 100644 index 0000000000..535f3129a0 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json index f7f44dee95..834a789a4c 100644 --- a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json +++ b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json @@ -27,6 +27,12 @@ }, { "name": "shadow_grab" + }, + { + "name": "ice_floor" + }, + { + "name": "earth_wall" } ] } \ No newline at end of file diff --git a/Resources/Textures/_CP14/Effects/cubeup.rsi/cube_up.png b/Resources/Textures/_CP14/Effects/cubeup.rsi/cube_up.png new file mode 100644 index 0000000000..39469a7aeb Binary files /dev/null and b/Resources/Textures/_CP14/Effects/cubeup.rsi/cube_up.png differ diff --git a/Resources/Textures/_CP14/Effects/cubeup.rsi/meta.json b/Resources/Textures/_CP14/Effects/cubeup.rsi/meta.json new file mode 100644 index 0000000000..5ba7ae4f90 --- /dev/null +++ b/Resources/Textures/_CP14/Effects/cubeup.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "All rights reserved for the CrystallPunk14 project only", + "copyright": "Created by TheShuEd (Discord) and modified by Jaraten (github/Discord) for CrystallPunk14", + "size": { + "x": 32, + "y": 48 + }, + "states": [ + { + "name": "cube_up", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/_CP14/Shaders/wave.swsl b/Resources/Textures/_CP14/Shaders/wave.swsl index beed1f4f4c..a6d84d2ee4 100644 --- a/Resources/Textures/_CP14/Shaders/wave.swsl +++ b/Resources/Textures/_CP14/Shaders/wave.swsl @@ -3,9 +3,9 @@ preset raw; varying highp vec2 Pos; varying highp vec4 VtxModulate; -uniform highp float Speed = 3.0; -uniform highp float Dis = 10.0; -uniform highp float Offset = 0.0; +uniform highp float Speed; +uniform highp float Dis; +uniform highp float Offset; void fragment() { // Re-create base mvp @@ -21,4 +21,4 @@ void vertex() { UV = mix(modifyUV.xy, modifyUV.zw, tCoord); UV2 = tCoord2; VtxModulate = zFromSrgb(modulate); -} \ No newline at end of file +}