Files
CHOMPStation2/modular_chomp/code/game/machinery/paradox.dm
2024-02-16 10:54:47 +01:00

138 lines
4.8 KiB
Plaintext

/obj/machinery/paradoxrift
name = "Paradoxical Rift Generator"
idle_power_usage = 50000000
icon = 'modular_chomp/icons/obj/machines/defense.dmi'
icon_state = "paradox"
circuit = /obj/item/weapon/circuitboard/paradoxrift
var/build_eff = 1
var/loot_eff = 1
var/chaos_eff = 1
/obj/item/weapon/circuitboard/paradoxrift
name = "paradox rift generator circuit"
build_path = /obj/machinery/paradoxrift
board_type = new /datum/frame/frame_types/machine
origin_tech = list(TECH_DATA = 8, TECH_PRECURSOR = 3)
req_components = list(
/obj/item/stack/cable_coil = 10,
/obj/item/weapon/stock_parts/capacitor = 4,
/obj/item/weapon/stock_parts/manipulator = 6,
/obj/item/weapon/stock_parts/scanning_module = 10)
/obj/machinery/paradoxrift/RefreshParts()
..()
var/man_rating = 0
var/scan_rating = 0
var/cap_rating = 0
for(var/obj/item/weapon/stock_parts/P in component_parts)
if(istype(P, /obj/item/weapon/stock_parts/scanning_module))
scan_rating += P.rating
if(istype(P, /obj/item/weapon/stock_parts/manipulator))
man_rating += P.rating
if(istype(P, /obj/item/weapon/stock_parts/capacitor))
cap_rating += P.rating
build_eff = man_rating
loot_eff = scan_rating
chaos_eff = cap_rating
/obj/machinery/paradoxrift/process()
if(!(stat & NOPOWER))
return
else
if(prob(0.5*build_eff))
if(prob(3*loot_eff))
new /obj/random/greaterportalloot (src.loc)
if(prob(30/chaos_eff))
new /obj/random/mob/interspace (src.loc)
else
return
else
new /obj/random/portalloot (src.loc)
if(prob(15/chaos_eff))
new /obj/random/mob/interspace (src.loc)
else
return
else
return
/obj/random/portalloot
name = "Random Portal Loot"
desc = "This is a random goodie from the void."
icon_state = "medicalkit"
/obj/random/portalloot/item_to_spawn()
return pick(prob(6);/obj/item/weapon/stock_parts/capacitor/omni,
prob(6);/obj/item/weapon/stock_parts/manipulator/omni,
prob(6);/obj/item/weapon/stock_parts/scanning_module/omni,
prob(6);/obj/item/weapon/stock_parts/matter_bin/omni,
prob(6);/obj/item/weapon/stock_parts/micro_laser/omni,
prob(6);/obj/item/stack/material/phoron,
prob(6);/obj/item/stack/material/deuterium,
prob(6);/obj/item/stack/material/tritium,
prob(6);/obj/item/stack/material/uranium
)
/obj/random/greaterportalloot
name = "Random Greater Portal Loot"
desc = "This is a random goodie from the void."
icon_state = "medicalkit"
/obj/random/greaterportalloot/item_to_spawn()
return pick(prob(2);/obj/item/weapon/stock_parts/capacitor/omni,
prob(2);/obj/item/weapon/stock_parts/manipulator/omni,
prob(2);/obj/item/weapon/stock_parts/scanning_module/omni,
prob(2);/obj/item/weapon/stock_parts/matter_bin/omni,
prob(2);/obj/item/weapon/stock_parts/micro_laser/omni,
prob(2);/obj/item/stack/material/phoron,
prob(2);/obj/item/stack/material/deuterium,
prob(2);/obj/item/stack/material/tritium,
prob(2);/obj/item/stack/material/uranium,
prob(6);/obj/item/weapon/rcd,
prob(6);/obj/item/weapon/rcd/shipwright,
prob(6);/obj/item/weapon/rcd/advanced,
prob(1);/obj/vehicle/bike/random,
prob(1);/obj/vehicle/train/engine/quadbike/random,
prob(1);/obj/vehicle/bike/random,
prob(6);/obj/structure/closet/crate/secure/lootsafe/numberlock,
prob(6);/obj/structure/closet/crate/secure/loot
)
/obj/random/mob/interspace
name = "Random Interspace"
desc = "This is a random mob from space or inbetween space."
icon_state = "humanoid"
mob_faction = "demon"
mob_returns_home = 1
mob_wander_distance = 7
/obj/random/mob/interspace/item_to_spawn()
return pick(prob(5);/mob/living/simple_mob/humanoid/starhunter/trader/miner,
prob(5);/mob/living/simple_mob/humanoid/starhunter/trader/reliccollecter,
prob(5);/mob/living/simple_mob/humanoid/starhunter/trader/farmer,
prob(1);/mob/living/simple_mob/vore/bigdragon,
prob(1);/mob/living/simple_mob/humanoid/cultist/magus/rift,
prob(15);/mob/living/simple_mob/vore/demonAI,
prob(25);/mob/living/simple_mob/shadekin,
prob(25);/mob/living/simple_mob/vore/solargrub,
prob(15);/mob/living/simple_mob/vore/sect_queen,
prob(25);/mob/living/simple_mob/vore/sect_drone,
prob(25);/mob/living/simple_mob/vore/aggressive/deathclaw,
prob(25);/mob/living/simple_mob/vore/aggressive/corrupthound,
prob(15);/mob/living/simple_mob/metroid/juvenile/super,
prob(25);/mob/living/simple_mob/animal/space/carp,
prob(15);/mob/living/simple_mob/animal/space/carp/large,
prob(15);/mob/living/simple_mob/animal/space/carp/large/huge,
prob(25);/mob/living/simple_mob/animal/space/carp/puffer,
prob(25);/mob/living/simple_mob/animal/space/alien,
prob(15);/mob/living/simple_mob/animal/space/alien/sentinel,
prob(25);/mob/living/simple_mob/vore/pakkun,
prob(25);/mob/living/simple_mob/vore/scel,
prob(5);/mob/living/simple_mob/vore/vore_hostile/abyss_lurker
)