Tyr Update Thing (#11713)

This commit is contained in:
FluffMedic
2025-09-21 17:07:58 -04:00
committed by GitHub
parent 40e617fe21
commit 76f927ead3
13 changed files with 2544 additions and 2349 deletions

View File

@@ -613,6 +613,7 @@
name = "experiment 20"
icon_state = "poison_boss"
icon_living = "poison_boss"
wreckage = /obj/item/prop/tyrlore/basicflora
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberc/bullet_act(obj/item/projectile/P)
if(istype(P,/obj/item/projectile/beam) || istype(P, /obj/item/projectile/energy))
@@ -655,6 +656,7 @@
icon_state = "sonic_boss"
icon_living = "sonic_boss"
projectiletype = /obj/item/projectile/knockback/slow
wreckage = /obj/item/prop/tyrlore/basicsonic
/obj/item/projectile/knockback/slow
speed = 10
@@ -688,6 +690,7 @@
icon_state = "UPshield_boss"
icon_living = "UPshield_boss"
projectiletype = /obj/item/projectile/energy/eclipse/tyrjavelin
wreckage = /obj/item/prop/tyrlore/basicshield
var/fullshield = 300
var/shieldrage = 3
@@ -737,6 +740,7 @@
specialattackprojectile = /obj/item/projectile/spawnball
icon_state = "spawn_boss"
icon_living = "spawn_boss"
wreckage = /obj/item/prop/tyrlore/drones
/obj/item/projectile/spawnball
name = "nano sphere"
@@ -748,7 +752,7 @@
muzzle_type = null
combustion = FALSE
/obj/item/projectile/metalball/on_hit(var/atom/target, var/blocked = 0)
/obj/item/projectile/spawnball/on_hit(var/atom/target, var/blocked = 0)
if(isturf(target.loc))
visible_message(span_danger("\The [src] creates a hivebot!"))
new /mob/living/simple_mob/mechanical/hivebot/tyr(target.loc)
@@ -777,6 +781,8 @@
icon_living = "cyan"
size_multiplier = 3
projectiletype = /obj/item/projectile/arc/explosive_rocket
wreckage = /obj/item/prop/tyrlore/ants
specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin
loot_list = list(/obj/item/projectile/energy/wp_shotgun = 30,
/obj/item/gun/energy/energyballchain = 30,
/obj/item/tool/wirecutters/hybrid/alien = 30,
@@ -831,6 +837,7 @@
icon_state = "yellow"
icon_living = "yellow"
size_multiplier = 3
wreckage = /obj/item/prop/tyrlore/basicpower
specialattackprojectile = /obj/item/projectile/energy/lightingspark/nanoweave
projectiletype = /obj/item/projectile/energy/lightingspark/nanoweave
loot_list = list(/obj/item/projectile/energy/wp_shotgun = 30,
@@ -882,12 +889,13 @@
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberg //wierd shields
name = "expirement 28"
specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin
resistance = 15
resistance = 10
health = 1000
maxHealth = 1000
icon_state = "UPshield_boss"
icon_living = "UPshield_boss"
color = "#FF0000"
wreckage = /obj/item/prop/tyrlore/advanceshield
projectiletype = /obj/item/projectile/energy/eclipse/tyrjavelin
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberg/do_special_attack(atom/A)
@@ -928,3 +936,4 @@
projectiletype = /obj/item/projectile/energy/eclipse/tyrjavelin/speed
icon_state = "shield_boss"
icon_living = "shield_boss"
..()

View File

@@ -164,7 +164,7 @@
. = TRUE // So we don't fire a bolt as well.
var/rng_cycle
if(attackcycle == 1)
specialattackprojectile = /obj/item/projectile/beam/burstlaser
specialattackprojectile = /obj/item/projectile/beam/midlaser/shortrange
rng_cycle = rand(1,5)
say("PROTOCOL: LASER. BLADE.")
addtimer(CALLBACK(src, PROC_REF(giant_burst), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME)

View File

@@ -17,7 +17,7 @@
name = "energy ball"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "spikeenergyball"
damage = 60 //after remebering throwing things into walls deals bonus damage. Will that wall thwacking out damage this 5 bonus...yes. But shotgun likly wins most DPS tests anyway
damage = 45 //after remebering throwing things into walls deals bonus damage. Will that wall thwacking out damage this 5 bonus...yes. But shotgun likly wins most DPS tests anyway
armor_penetration = 60 //damage and AP matching makes brain happy for some reason. No real logic here, just brain saying yes, this is right
range = 8
speed = 5
@@ -28,7 +28,7 @@
name = "laser blast"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "shotgun_blast"
damage = 50
damage = 25
range = 5
check_armour = "bullet"
damage_type = BRUTE
@@ -45,14 +45,14 @@
name = "laser blast"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "blaster_blast"
damage = 60
damage = 35
range = 5
check_armour = "laser"
/obj/item/projectile/beam/precursor_tyr
name = "laser"
icon_state = "laser"
damage = 10
damage = 8
armor_penetration = 30
penetrating = 20
damage_type = BURN
@@ -68,27 +68,27 @@
range = 0
embed_chance = 0
spread_submunition_damage = FALSE
submunition_spread_max = 120
submunition_spread_max = 150
submunition_spread_min = 60
submunitions = list(/obj/item/projectile/beam/precursor_tyr = 5)
/obj/item/gun/energy/energyballchain
name = "remade prototype weapon"
desc = "A weapon created from strange alien junk and blueprints"
name = "tyrian energy club"
desc = "A strange alien weapon from tyr."
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "violence"
item_state = "violence"
wielded_item_state = "placeholder"
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 2500 //Uses all it's charge in a single shot.
charge_cost = 625 //Uses all it's charge in a single shot.
battery_lock = 1 //No changing
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon/recharge/alien/tyr
projectile_type = /obj/item/projectile/energy/spikeenergy_ball
force = 30 //functions as a melee weapon too! Ain't great, but still works.
force = 45 //functions as a melee weapon too! Ain't great, but still works.
recoil_mode = 0
charge_meter = 1
@@ -97,15 +97,15 @@
one_handed_penalty = 50
/obj/item/gun/energy/curse_tyrshotgun
name = "remade prototype weapon"
desc = "A weapon created from strange alien junk and blueprints"
name = "tyrian enforcer firearm"
desc = "A strange alien weapon from tyr."
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "shotgun"
item_state = "shotgun"
wielded_item_state = "placeholder"
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 500 //Five shots
charge_cost = 625 //Four shots
battery_lock = 1 //No changing
accept_cell_type = /obj/item/cell/device
@@ -116,23 +116,23 @@
charge_meter = 1
firemodes = list(
list(mode_name="explosive", projectile_type=/obj/item/projectile/energy/wp_shotgun, charge_cost = 500),
list(mode_name="spray", projectile_type=/obj/item/projectile/bullet/tyrshotburst, charge_cost = 750),
list(mode_name="explosive", projectile_type=/obj/item/projectile/energy/wp_shotgun, charge_cost = 625),
list(mode_name="spray", projectile_type=/obj/item/projectile/bullet/tyrshotburst, charge_cost = 625),
)
move_delay = 0
one_handed_penalty = 50
/obj/item/gun/energy/curse_blaster
name = "remade prototype weapon"
desc = "A weapon created from strange alien junk and blueprints"
name = "tyrian infantry firearm"
desc = "A strange alien weapon from tyr."
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "solider_blaster"
item_state = "solider_blaster"
wielded_item_state = "placeholder"
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 250
charge_cost = 625
battery_lock = 1 //No changing
accept_cell_type = /obj/item/cell/device
@@ -145,28 +145,6 @@
move_delay = 0
one_handed_penalty = 50
/obj/item/gun/energy/curse_lasershooter
name = "remade prototype weapon"
desc = "A weapon created from strange alien junk and blueprints"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "crystal_blaster"
item_state = "crystal_blaster"
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 250 //10 shots
battery_lock = 1 //No changing
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon/recharge/alien/tyr
projectile_type = /obj/item/projectile/beam/precursor_tyr
recoil_mode = 0
charge_meter = 1
move_delay = 0
one_handed_penalty = 50
/obj/item/cell/device/weapon/recharge/alien/tyr
name = "odd cell"
icon = 'icons/obj/abductor.dmi'
@@ -175,38 +153,6 @@
charge_amount = 250 // 10%.
charge_delay = 50 // Every five seconds, bit faster than the default.
/obj/item/gun/energy/weatherbombardment
name = "prototype cannon - Weather Bombardment"
desc = "A massive weapon torn of a precursor mech."
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "ultima"
item_state = "ultima"
w_class = ITEMSIZE_HUGE // This thing is big.
slot_flags = SLOT_BACK
one_handed_penalty = 70
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon/recharge/alien/tyr
battery_lock = 1
recoil_mode = 0
charge_meter = 1
move_delay = 0
firemodes = list(
list(mode_name="lighting storm", burst=1, fire_delay=15, projectile_type=/obj/item/projectile/beam/chain_lightning, charge_cost = 500),
list(mode_name="acid rain", burst=5, fire_delay=15, projectile_type=/obj/item/projectile/energy/neurotoxin/toxic, charge_cost = 50),
list(mode_name="meteor shower", burst=1, fire_delay=15, projectile_type=/obj/item/projectile/arc/fragmentation/metoerstrike, charge_cost = 500),
list(mode_name="starry night", burst=5, fire_delay=15, projectile_type=/obj/item/projectile/beam/medical_cell/omni, charge_cost = 50),
)
/obj/item/projectile/arc/fragmentation/metoerstrike
name = "fragmentation shot"
icon_state = "shell"
fragment_types = list(/obj/item/projectile/energy/spikeenergy_ball/slow)
fragment_amount = 10 // Same as a grenade.
spread_range = 60
/obj/item/projectile/energy/spikeenergy_ball/slow
speed = 15
range = 20

View File

@@ -0,0 +1,16 @@
/datum/experiment/scanning/points/tyr_precursor_study
name = "Tyr Precursor Study"
description = "A scientist or explorer will need to obtain data discs from Tyr!"
required_points = 3
required_atoms = list(
/obj/item/prop/tyrlore/reddisc = 1,
/obj/item/prop/tyrlore/purpledisc = 1,
/obj/item/prop/tyrlore/greendisc = 1,
/obj/item/prop/tyrlore/basicflora = 1,
/obj/item/prop/tyrlore/basicshield = 1,
/obj/item/prop/tyrlore/advanceshield = 1,
/obj/item/prop/tyrlore/basicsonic = 1,
/obj/item/prop/tyrlore/basicpower = 1,
/obj/item/prop/tyrlore/ants = 1,
/obj/item/prop/tyrlore/drones = 1,
)

View File

@@ -0,0 +1,32 @@
/datum/design_techweb/tyrenergyballchain
name = "Tyrian Melee Weapon"
id = "tyr_meleegun"
build_type = PROTOLATHE
materials = list(MAT_STEEL = 12000,MAT_DIAMOND = 4000,MAT_URANIUM = 3000,MAT_COPPER = 3000,MAT_GOLD = 3000,MAT_MYDRO = 3000,MAT_QUARTZ = 3000,MAT_WEATHERED_AGATE = 3000)
build_path = /obj/item/gun/energy/energyballchain
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_RANGED
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
/datum/design_techweb/tyrenergyshotgun
name = "Tyrian Enforcer Firearm"
id = "tyr_shotgun"
build_type = PROTOLATHE
materials = list(MAT_STEEL = 12000,MAT_DIAMOND = 4000,MAT_URANIUM = 3000,MAT_COPPER = 3000,MAT_GOLD = 3000,MAT_MYDRO = 3000,MAT_QUARTZ = 3000,MAT_WEATHERED_AGATE = 3000)
build_path = /obj/item/gun/energy/curse_tyrshotgun
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_RANGED
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
/datum/design_techweb/tyrenergyrifle
name = "Tyrian Infantry Firearm"
id = "tyr_rifle"
build_type = PROTOLATHE
materials = list(MAT_STEEL = 12000,MAT_DIAMOND = 4000,MAT_URANIUM = 3000,MAT_COPPER = 3000,MAT_GOLD = 3000,MAT_MYDRO = 3000,MAT_QUARTZ = 3000,MAT_WEATHERED_AGATE = 3000)
build_path = /obj/item/gun/energy/curse_blaster
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_RANGED
)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE

View File

@@ -0,0 +1,13 @@
/datum/techweb_node/tyr_loot
id = TECHWEB_NODE_TYRGOODS
display_name = "Explosives"
description = "For once, intentional explosions."
prereq_ids = list(TECHWEB_NODE_MOD_ANOMALY_SUIT)
design_ids = list(
"tyr_rifle",
"tyr_shotgun",
"tyr_meleegun",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
required_experiments = list(/datum/experiment/scanning/points/tyr_precursor_study)
announce_channels = list(CHANNEL_SECURITY, CHANNEL_SCIENCE)