crystals drop shards and ore crab tweaks. (#20930)

* crystals drop shards and ore crab tweaks

* crystals drop shards, shards can be crafted into colored light tubes and silver ore crab.

* crystals can now be unanchored.

* added silver crab to rock anom spawn

* fixes

* sorted out the parenting for crystal light tubes.
This commit is contained in:
brainfood1183
2023-12-16 22:20:14 +00:00
committed by GitHub
parent 9e33966315
commit f262aaaac0
27 changed files with 685 additions and 106 deletions

View File

@@ -6,8 +6,8 @@
- type: Sprite
layers:
- state: red
- sprite: Structures/Decoration/crystal.rsi
state: crystal_cyan
- sprite: Structures/Walls/rock.rsi
state: rock_asteroid_ore
- type: RandomSpawner
prototypes:
- AsteroidRockCrab

View File

@@ -8,7 +8,7 @@
layers:
- state: red
- sprite: Structures/Decoration/crystal.rsi
state: crystal_cyan
state: crystal_grey
- type: RandomSpawner
prototypes:
- CrystalGreen
@@ -16,4 +16,5 @@
- CrystalOrange
- CrystalBlue
- CrystalCyan
- CrystalGrey
chance: 0.7

View File

@@ -774,13 +774,14 @@
- type: Sprite
layers:
- state: green
- state: quartzcrab
- state: quartz_crab
sprite: Mobs/Elemental/orecrab.rsi
- type: RandomSpawner
prototypes:
- MobUraniumCrab
- MobIronCrab
- MobQuartzCrab
- MobSilverCrab
- type: entity
name: luminous person spawner

View File

@@ -1,5 +1,4 @@
- type: entity
save: false
abstract: true
id: MobElementalBase
components:
@@ -76,27 +75,38 @@
- type: ZombieImmune
- type: entity
abstract: true
id: MobOreCrab
name: ore crab
parent: [ MobElementalBase, MobCombat ]
id: MobQuartzCrab
name: quartz crab
description: An ore crab made from quartz.
components:
- type: Sprite
sprite: Mobs/Elemental/orecrab.rsi
state: quartzcrab
state: uranium_crab
- type: HTN
rootTask:
task: SimpleHostileCompound
- type: MeleeWeapon
hidden: true
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
damage:
types:
Piercing: 12
- type: CombatMode
Blunt: 6
- type: MovementSpeedModifier
baseWalkSpeed : 2
baseSprintSpeed : 2.5
- type: NpcFactionMember
factions:
- SimpleHostile
- type: entity
parent: MobOreCrab
id: MobQuartzCrab
description: An ore crab made from Quartz.
components:
- type: Sprite
state: quartz_crab
- type: Destructible
thresholds:
- trigger:
@@ -115,30 +125,19 @@
acts: [ "Destruction" ]
- type: entity
parent: [ MobElementalBase, MobCombat ]
parent: MobOreCrab
id: MobIronCrab
name: ore crab
description: An ore crab made from iron.
components:
- type: Sprite
sprite: Mobs/Elemental/orecrab.rsi
state: ironcrab
- type: HTN
rootTask:
task: SimpleHostileCompound
state: iron_crab
- type: MeleeWeapon
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
damage:
types:
Blunt: 8
- type: CombatMode
Blunt: 5
- type: MovementSpeedModifier
baseWalkSpeed : 1.5
baseSprintSpeed : 2
- type: NpcFactionMember
factions:
- SimpleHostile
- type: Destructible
thresholds:
- trigger:
@@ -157,30 +156,16 @@
acts: [ "Destruction" ]
- type: entity
parent: [ MobElementalBase, MobCombat ]
parent: MobOreCrab
id: MobUraniumCrab
name: ore crab
description: An ore crab made from uranium.
components:
- type: Sprite
sprite: Mobs/Elemental/orecrab.rsi
state: uraniumcrab
- type: HTN
rootTask:
task: IdleCompound
- type: MeleeWeapon
soundHit:
path: /Audio/Weapons/Xeno/alien_claw_flesh3.ogg
damage:
types:
Blunt: 8
- type: CombatMode
- type: MovementSpeedModifier
baseWalkSpeed : 2
baseSprintSpeed : 2.5
- type: FactionException
- type: NPCRetaliation
attackMemoryLength: 10
- type: NpcFactionMember
factions:
- SimpleHostile
- SimpleNeutral
- type: RadiationSource
intensity: 2
slope: 0.3
@@ -196,8 +181,8 @@
- !type:SpawnEntitiesBehavior
spawn:
UraniumOre1:
min: 8
max: 10
min: 3
max: 6
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: PointLight
@@ -205,6 +190,35 @@
energy: 3
color: "#06DF24"
- type: entity
parent: MobOreCrab
id: MobSilverCrab
name: ore crab
description: An ore crab made from silver.
components:
- type: Sprite
state: silver_crab
- type: MeleeWeapon
damage:
types:
Blunt: 5
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 70
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
SilverOre1:
min: 4
max: 6
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
name: Reagent slime
id: ReagentSlime

View File

@@ -0,0 +1,138 @@
- type: entity
abstract: true
parent: BaseItem
id: ShardCrystalBase
name: crystal shard
description: A small piece of crystal.
components:
- type: Sharp
- type: Sprite
layers:
- sprite: Objects/Materials/Shards/crystal.rsi
state: shard1
map: [ "enum.DamageStateVisualLayers.Base" ]
- type: RandomSprite
available:
- enum.DamageStateVisualLayers.Base:
shard1: ""
- enum.DamageStateVisualLayers.Base:
shard2: ""
- enum.DamageStateVisualLayers.Base:
shard3: ""
- type: SpaceGarbage
- type: ItemCooldown
- type: MeleeWeapon
attackRate: 1.5
damage:
types:
Slash: 3.5
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Glass
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: StaticPrice
price: 50
- type: entity
parent: ShardCrystalBase
id: ShardCrystalCyan
name: cyan crystal shard
description: A small piece of crystal.
components:
- type: Sprite
color: "#47f8ff"
- type: PointLight
radius: 2
energy: 2.5
color: "#47f8ff"
- type: Tag
tags:
- Trash
- CrystalCyan
- type: entity
parent: ShardCrystalBase
name: blue crystal shard
id: ShardCrystalBlue
components:
- type: Sprite
color: "#39a1ff"
- type: PointLight
radius: 2
energy: 2.5
color: "#39a1ff"
- type: Tag
tags:
- Trash
- CrystalBlue
- type: entity
parent: ShardCrystalBase
id: ShardCrystalOrange
name: orange crystal shard
components:
- type: Sprite
color: "#ff8227"
- type: PointLight
radius: 2
energy: 2.5
color: "#ff8227"
- type: Tag
tags:
- Trash
- CrystalOrange
- type: entity
parent: ShardCrystalBase
id: ShardCrystalPink
name: pink crystal shard
components:
- type: Sprite
color: "#ff66cc"
- type: PointLight
radius: 2
energy: 2.5
color: "#ff66cc"
- type: Tag
tags:
- Trash
- CrystalPink
- type: entity
parent: ShardCrystalBase
id: ShardCrystalGreen
name: green crystal shard
components:
- type: Sprite
color: "#52ff39"
- type: PointLight
radius: 2
energy: 2.5
color: "#52ff39"
- type: Tag
tags:
- Trash
- CrystalGreen
- type: entity
parent: ShardCrystalBase
id: ShardCrystalRed
name: red crystal shard
components:
- type: Sprite
color: "#fb4747"
- type: PointLight
radius: 2
energy: 2.5
color: "#fb4747"
- type: Tag
tags:
- Trash
- CrystalRed

View File

@@ -77,6 +77,37 @@
sprite: Objects/Power/light_tube.rsi
- type: LightBulb
bulb: Tube
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:DoActsBehavior
acts: [ "Breakage" ]
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
# Lighting color values gathered from
# https://andi-siess.de/rgb-to-color-temperature/
@@ -169,3 +200,100 @@
lightSoftness: 0.5
BurningTemperature: 350
PowerUse: 100
- type: entity
parent: BaseLightTube
name: cyan crystal light tube
description: A high power high energy bulb which has a small colored crystal inside.
id: LightTubeCrystalCyan
components:
- type: LightBulb
color: "#47f8ff"
lightEnergy: 3
lightRadius: 8
lightSoftness: 0.5
BurningTemperature: 350
PowerUse: 60
- type: Construction
graph: CyanLight
node: icon
- type: entity
parent: LightTubeCrystalCyan
name: blue crystal light tube
id: LightTubeCrystalBlue
components:
- type: LightBulb
color: "#39a1ff"
lightEnergy: 3
lightRadius: 8
lightSoftness: 0.5
BurningTemperature: 350
PowerUse: 60
- type: Construction
graph: BlueLight
node: icon
- type: entity
parent: LightTubeCrystalCyan
name: pink crystal light tube
id: LightTubeCrystalPink
components:
- type: LightBulb
color: "#ff66cc"
lightEnergy: 3
lightRadius: 8
lightSoftness: 0.5
BurningTemperature: 350
PowerUse: 60
- type: Construction
graph: PinkLight
node: icon
- type: entity
parent: LightTubeCrystalCyan
name: orange crystal light tube
id: LightTubeCrystalOrange
components:
- type: LightBulb
color: "#ff8227"
lightEnergy: 3
lightRadius: 8
lightSoftness: 0.5
BurningTemperature: 350
PowerUse: 60
- type: Construction
graph: OrangeLight
node: icon
- type: entity
parent: LightTubeCrystalCyan
name: red crystal light tube
id: LightTubeCrystalRed
components:
- type: LightBulb
color: "#fb4747"
lightEnergy: 3
lightRadius: 8
lightSoftness: 0.5
BurningTemperature: 350
PowerUse: 60
- type: Construction
graph: RedLight
node: icon
- type: entity
parent: LightTubeCrystalCyan
name: green crystal light tube
id: LightTubeCrystalGreen
components:
- type: LightBulb
color: "#52ff39"
lightEnergy: 3
lightRadius: 8
lightSoftness: 0.5
BurningTemperature: 350
PowerUse: 60
- type: Construction
graph: GreenLight
node: icon

View File

@@ -1,17 +1,24 @@
- type: entity
id: CrystalGreen
parent: BaseStructure
name: green crystal
description: It's a shiny green crystal.
suffix: green
name: crystal
description: A crystaline solid.
components:
- type: Sprite
sprite: Structures/Decoration/crystal.rsi
state: crystal_green
state: crystal_grey
color: "#52ff39"
noRot: true
- type: Reflect
reflectProb: 0.5
reflects:
- Energy
spread: 75
- type: Anchorable
delay: 2
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
@@ -29,10 +36,38 @@
- type: PointLight
radius: 3
energy: 3
color: "#06DF24"
color: "#52ff39"
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
damageModifierSet: Glass
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalGreen:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
id: CrystalPink
parent: CrystalGreen
suffix: pink
components:
- type: Sprite
color: "#ff66cc"
- type: PointLight
radius: 3
energy: 3
color: "#ff66cc"
- type: Destructible
thresholds:
- trigger:
@@ -44,74 +79,119 @@
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- type: entity
id: CrystalPink
parent: CrystalGreen
name: pink crystal
description: It's a shiny pink crystal.
components:
- type: Sprite
sprite: Structures/Decoration/crystal.rsi
state: crystal_pink
- type: PointLight
radius: 3
energy: 3
color: "#DF06DC"
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalPink:
min: 1
max: 1
- type: entity
id: CrystalGrey
parent: CrystalGreen
name: grey crystal
description: It's a shiny grey crystal.
suffix: red
components:
- type: Sprite
sprite: Structures/Decoration/crystal.rsi
state: crystal_grey
color: "#fb4747"
- type: PointLight
radius: 3
energy: 3
color: "#C1B0C1"
color: "#fb4747"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalRed:
min: 1
max: 2
- type: entity
id: CrystalOrange
parent: CrystalGreen
name: orange crystal
description: It's a shiny orange crystal.
suffix: orange
components:
- type: Sprite
sprite: Structures/Decoration/crystal.rsi
state: crystal_orange
color: "#ff8227"
- type: PointLight
radius: 3
energy: 3
color: "#E8820F"
color: "#ff8227"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalOrange:
min: 1
max: 2
- type: entity
id: CrystalBlue
parent: CrystalGreen
name: blue crystal
description: It's a shiny blue crystal.
suffix: blue
components:
- type: Sprite
sprite: Structures/Decoration/crystal.rsi
state: crystal_blue
color: "#39a1ff"
- type: PointLight
radius: 3
energy: 3
color: "#1843D4"
color: "#39a1ff"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalBlue:
min: 1
max: 2
- type: entity
id: CrystalCyan
parent: CrystalGreen
name: cyan crystal
description: It's a shiny cyan crystal.
suffix: cyan
components:
- type: Sprite
sprite: Structures/Decoration/crystal.rsi
state: crystal_cyan
color: "#47f8ff"
- type: PointLight
radius: 3
energy: 3
color: "#18C9D4"
color: "#47f8ff"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalCyan:
min: 1
max: 2
- !type:DoActsBehavior
acts: [ "Destruction" ]

View File

@@ -0,0 +1,120 @@
- type: constructionGraph
id: CyanLight
start: start
graph:
- node: start
edges:
- to: icon
steps:
- material: Glass
amount: 1
doAfter: 1
- tag: CrystalCyan
name: cyan crystal shard
icon:
sprite: Objects/Materials/Shards/crystal.rsi
state: shard1
color: #52ff39
doAfter: 1
- node: icon
entity: LightTubeCrystalCyan
- type: constructionGraph
id: BlueLight
start: start
graph:
- node: start
edges:
- to: icon
steps:
- material: Glass
amount: 2
doAfter: 1
- tag: CrystalBlue
name: blue crystal shard
icon:
sprite: Objects/Materials/Shards/crystal.rsi
state: shard1
doAfter: 1
- node: icon
entity: LightTubeCrystalBlue
- type: constructionGraph
id: PinkLight
start: start
graph:
- node: start
edges:
- to: icon
steps:
- material: Glass
amount: 2
doAfter: 1
- tag: CrystalPink
name: pink crystal shard
icon:
sprite: Objects/Materials/Shards/crystal.rsi
state: shard1
doAfter: 1
- node: icon
entity: LightTubeCrystalPink
- type: constructionGraph
id: OrangeLight
start: start
graph:
- node: start
edges:
- to: icon
steps:
- material: Glass
amount: 2
doAfter: 1
- tag: CrystalOrange
name: orange crystal shard
icon:
sprite: Objects/Materials/Shards/crystal.rsi
state: shard1
doAfter: 1
- node: icon
entity: LightTubeCrystalOrange
- type: constructionGraph
id: RedLight
start: start
graph:
- node: start
edges:
- to: icon
steps:
- material: Glass
amount: 2
doAfter: 1
- tag: CrystalRed
name: red crystal shard
icon:
sprite: Objects/Materials/Shards/crystal.rsi
state: shard1
doAfter: 1
- node: icon
entity: LightTubeCrystalRed
- type: constructionGraph
id: GreenLight
start: start
graph:
- node: start
edges:
- to: icon
steps:
- material: Glass
amount: 2
doAfter: 1
- tag: CrystalGreen
name: green crystal shard
icon:
sprite: Objects/Materials/Shards/crystal.rsi
state: shard1
doAfter: 1
- node: icon
entity: LightTubeCrystalGreen

View File

@@ -0,0 +1,65 @@
- type: construction
name: cyan light tube
id: CyanLight
graph: CyanLight
startNode: start
targetNode: icon
category: construction-category-utilities
description: A high powered light tube containing a cyan crystal
icon: { sprite: Objects/Power/light_tube.rsi, state: normal }
objectType: Item
- type: construction
name: blue light tube
id: BlueLight
graph: BlueLight
startNode: start
targetNode: icon
category: construction-category-utilities
description: A high powered light tube containing a blue crystal
icon: { sprite: Objects/Power/light_tube.rsi, state: normal }
objectType: Item
- type: construction
name: pink light tube
id: PinkLight
graph: PinkLight
startNode: start
targetNode: icon
category: construction-category-utilities
description: A high powered light tube containing a pink crystal
icon: { sprite: Objects/Power/light_tube.rsi, state: normal }
objectType: Item
- type: construction
name: orange light tube
id: OrangeLight
graph: OrangeLight
startNode: start
targetNode: icon
category: construction-category-utilities
description: A high powered light tube containing an orange crystal
icon: { sprite: Objects/Power/light_tube.rsi, state: normal }
objectType: Item
- type: construction
name: red light tube
id: RedLight
graph: RedLight
startNode: start
targetNode: icon
category: construction-category-utilities
description: A high powered light tube containing a red crystal
icon: { sprite: Objects/Power/light_tube.rsi, state: normal }
objectType: Item
- type: construction
name: green light tube
id: GreenLight
graph: GreenLight
startNode: start
targetNode: icon
category: construction-category-utilities
description: A high powered light tube containing a green crystal
icon: { sprite: Objects/Power/light_tube.rsi, state: normal }
objectType: Item

View File

@@ -44,6 +44,10 @@
id: OreIronCrab
oreEntity: MobIronCrab
- type: ore
id: OreSilverCrab
oreEntity: MobSilverCrab
- type: ore
id: OreUraniumCrab
oreEntity: MobUraniumCrab
@@ -71,4 +75,5 @@
weights:
OreQuartzCrab: 5
OreIronCrab: 5
OreUraniumCrab: 3
OreUraniumCrab: 2
OreSilverCrab: 3

View File

@@ -365,6 +365,24 @@
- type: Tag
id: Cryobeaker
- type: Tag
id: CrystalCyan
- type: Tag
id: CrystalBlue
- type: Tag
id: CrystalPink
- type: Tag
id: CrystalGreen
- type: Tag
id: CrystalOrange
- type: Tag
id: CrystalRed
- type: Tag
id: ConveyorAssembly

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -8,15 +8,19 @@
"copyright": "Made by brainfood1183 (github)",
"states": [
{
"name": "ironcrab",
"name": "iron_crab",
"directions": 4
},
{
"name": "uraniumcrab",
"name": "uranium_crab",
"directions": 4
},
{
"name": "quartzcrab",
"name": "silver_crab",
"directions": 4
},
{
"name": "quartz_crab",
"directions": 4
}
]

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,20 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Made by brainfood1183 (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "shard1"
},
{
"name": "shard2"
},
{
"name": "shard3"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

View File

@@ -7,21 +7,6 @@
"y": 32
},
"states": [
{
"name": "crystal_green"
},
{
"name": "crystal_pink"
},
{
"name": "crystal_orange"
},
{
"name": "crystal_blue"
},
{
"name": "crystal_cyan"
},
{
"name": "crystal_grey"
}