mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-24 13:47:33 +01:00
Merge remote-tracking branch 'upstream/master' into second-autotransfer
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
var/datum/gear_tweak/item_tf_spawn/gear_tweak_item_tf_spawn = new()
|
||||
|
||||
/datum/gear_tweak/item_tf_spawn
|
||||
|
||||
/datum/gear_tweak/item_tf_spawn/get_contents(var/metadata)
|
||||
if(!islist(metadata) || metadata["state"] == "Not Enabled")
|
||||
return "Item TF spawnpoint: Not Enabled"
|
||||
else if(metadata["state"] == "Anyone")
|
||||
return "Item TF spawnpoint: Enabled"
|
||||
else
|
||||
return "Item TF spawnpoint: Only ckeys [english_list(metadata["valid"], and_text = ", ")]"
|
||||
|
||||
/datum/gear_tweak/item_tf_spawn/get_default()
|
||||
. = list()
|
||||
.["state"] = "Not Enabled"
|
||||
.["valid"] = list()
|
||||
|
||||
/datum/gear_tweak/item_tf_spawn/get_metadata(var/user, var/list/metadata)
|
||||
. = get_default()
|
||||
metadata = islist(metadata) ? metadata : .
|
||||
var/entry = tgui_input_list(user, "Choose an entry.", "Character Preference", list("Not Enabled", "Anyone", "Only Specific Players"), metadata["state"])
|
||||
if(entry)
|
||||
.["state"] = entry
|
||||
if(entry == "Only Specific Players")
|
||||
var/ckey_input = tgui_input_text(user, "Input ckeys allowed to join on separate lines", "Allowed Players", jointext(metadata["valid"], "\n"), multiline = TRUE)
|
||||
.["valid"] = splittext(lowertext(ckey_input), "\n")
|
||||
else
|
||||
.["valid"] = metadata["valid"]
|
||||
else
|
||||
return metadata
|
||||
|
||||
/datum/gear_tweak/item_tf_spawn/tweak_item(var/obj/item/I, var/metadata)
|
||||
if(!islist(metadata))
|
||||
return
|
||||
if(metadata["state"] == "Not Enabled")
|
||||
return
|
||||
else if(metadata["state"] == "Anyone")
|
||||
I.item_tf_spawnpoint_set()
|
||||
else if(metadata["state"] == "Only Specific Players")
|
||||
I.item_tf_spawnpoint_set()
|
||||
I.ckeys_allowed_itemspawn = metadata["valid"]
|
||||
|
||||
/datum/gear_tweak/simplemob_picker
|
||||
var/list/simplemob_list
|
||||
|
||||
/datum/gear_tweak/simplemob_picker/New(var/list/valid_simplemobs)
|
||||
src.simplemob_list = valid_simplemobs
|
||||
..()
|
||||
|
||||
/datum/gear_tweak/simplemob_picker/get_contents(var/metadata)
|
||||
return "Type: [metadata]"
|
||||
|
||||
/datum/gear_tweak/simplemob_picker/get_default()
|
||||
return simplemob_list[1]
|
||||
|
||||
/datum/gear_tweak/simplemob_picker/get_metadata(var/user, var/metadata)
|
||||
return tgui_input_list(user, "Choose a type.", "Character Preference", simplemob_list, metadata)
|
||||
|
||||
/datum/gear_tweak/simplemob_picker/tweak_item(var/obj/item/capture_crystal/I, var/metadata)
|
||||
if(!(metadata in simplemob_list))
|
||||
return
|
||||
if(!istype(I))
|
||||
return
|
||||
I.spawn_mob_type = simplemob_list[metadata]
|
||||
I.spawn_mob_name = metadata
|
||||
|
||||
GLOBAL_DATUM_INIT(gear_tweak_free_matrix_recolor, /datum/gear_tweak/matrix_recolor, new)
|
||||
|
||||
/datum/gear_tweak/matrix_recolor
|
||||
|
||||
/datum/gear_tweak/matrix_recolor/get_contents(var/metadata)
|
||||
if(islist(metadata) && length(metadata))
|
||||
return "Matrix Recolor: [english_list(metadata)]"
|
||||
return "Matrix Recolor"
|
||||
|
||||
/datum/gear_tweak/matrix_recolor/get_default()
|
||||
return null
|
||||
|
||||
/datum/gear_tweak/matrix_recolor/get_metadata(user, metadata)
|
||||
var/list/returned = color_matrix_picker(user, "Pick a color matrix for this item", "Matrix Recolor", "Ok", "Erase", "Cancel", TRUE, 10 MINUTES, islist(metadata) && metadata)
|
||||
var/list/L = returned["matrix"]
|
||||
if(returned["button"] == 3)
|
||||
return metadata
|
||||
if((returned["button"] == 2) || !islist(L) || !ISINRANGE(L.len, 9, 20))
|
||||
return list()
|
||||
var/identity = TRUE
|
||||
var/static/list/ones = list(1, 5, 9)
|
||||
for(var/i in 1 to L.len)
|
||||
if(L[i] != ((i in ones)? 1 : 0))
|
||||
identity = FALSE
|
||||
break
|
||||
return identity? list() : L
|
||||
|
||||
/datum/gear_tweak/matrix_recolor/tweak_item(obj/item/I, metadata)
|
||||
. = ..()
|
||||
if(!islist(metadata) || (length(metadata) < 12))
|
||||
return
|
||||
if(istype(I))
|
||||
I.add_atom_colour(metadata, FIXED_COLOUR_PRIORITY)
|
||||
else
|
||||
I.color = metadata // fuck off underwear
|
||||
@@ -6,7 +6,7 @@
|
||||
var/list/new_fullness = ..()
|
||||
. = new_fullness
|
||||
for(var/datum/category_group/underwear/undergarment_class in global_underwear.categories)
|
||||
if(new_fullness[undergarment_class.name] == 0)
|
||||
if(!new_fullness[undergarment_class.name])
|
||||
continue
|
||||
new_fullness[undergarment_class.name] = -1 * round(-1 * new_fullness[undergarment_class.name]) // Doing a ceiling the only way BYOND knows how I guess
|
||||
new_fullness[undergarment_class.name] = (min(2, new_fullness[undergarment_class.name]) - 2) * -1 //Complicated stuff to get it correctly aligned with the expected TRUE/FALSE
|
||||
|
||||
+53
-48
@@ -14,7 +14,7 @@
|
||||
icon_gib = "syndicate_gib"
|
||||
|
||||
faction = "eclipse"
|
||||
movement_cooldown = 3
|
||||
movement_cooldown = 0
|
||||
|
||||
status_flags = 0
|
||||
|
||||
@@ -104,17 +104,17 @@
|
||||
////////////////////////////////
|
||||
/datum/ai_holder/simple_mob/merc/eclipse
|
||||
threaten = FALSE
|
||||
vision_range = 8
|
||||
vision_range = 7
|
||||
|
||||
/datum/ai_holder/simple_mob/merc/eclipse/hunter
|
||||
vision_range = 10
|
||||
vision_range = 7
|
||||
|
||||
/datum/ai_holder/simple_mob/merc/eclipse/ranged
|
||||
pointblank = TRUE // They get close? Just shoot 'em!
|
||||
firing_lanes = TRUE // But not your buddies!
|
||||
|
||||
/datum/ai_holder/simple_mob/merc/eclipse/ranged/sniper
|
||||
vision_range = 15 // We're a person with a long-ranged gun.
|
||||
vision_range = 12 // We're a person with a long-ranged gun.
|
||||
|
||||
/datum/ai_holder/simple_mob/merc/eclipse/ranged/sniper/max_range(atom/movable/AM)
|
||||
return holder.ICheckRangedAttack(AM) ? 16 : 1
|
||||
@@ -123,25 +123,26 @@
|
||||
//The solar part of the faction, highly resistant to burns and stuff
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar
|
||||
name = "Solar Eclipse Initiate"
|
||||
desc = "A silver cladded, dangerous looking indivual."
|
||||
desc = "A dangerous indivual, a gleaming orange shield surronding them, seeming protected from energy and burns."
|
||||
|
||||
armor = list(melee = 50, bullet = 50, laser = 95, energy = 95, bomb = 50, bio = 100, rad = 100) //Solar members are nigh immune to burns.
|
||||
armor_soak = list(melee = 0, bullet = 0, laser = 5, energy = 5, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = -10, bullet = -10, laser = 75, energy = 75, bomb = 50, bio = 100, rad = 100) //Solar members are nigh immune to burns.
|
||||
armor_soak = list(melee = 0, bullet = 0, laser = 15, energy = 15, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle
|
||||
name = "Solar Eclipse Tesla Serpent"
|
||||
health = 125
|
||||
maxHealth = 125
|
||||
health = 100
|
||||
maxHealth = 100
|
||||
icon_state = "eclipse_tesla"
|
||||
icon_living = "eclipse_tesla"
|
||||
reload_max = 5
|
||||
movement_cooldown = 1
|
||||
|
||||
projectiletype = /obj/item/projectile/energy/electrode/eclipse
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/firemoff
|
||||
name = "Solar Eclipse Inferno Moth"
|
||||
health = 90
|
||||
maxHealth = 90
|
||||
health = 75
|
||||
maxHealth = 75
|
||||
icon_state = "eclipse_moth"
|
||||
icon_living = "eclipse_moth"
|
||||
reload_max = 10
|
||||
@@ -197,23 +198,23 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh
|
||||
name = "Solar Eclipse Sniper"
|
||||
health = 75
|
||||
maxHealth = 75
|
||||
movement_cooldown = 1
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
movement_cooldown = -1
|
||||
|
||||
icon_state = "eclipse_snipertesh"
|
||||
icon_living = "eclipse_snipertesh"
|
||||
|
||||
projectiletype = /obj/item/projectile/beam/sniper/eclipse
|
||||
|
||||
projectile_accuracy = 75
|
||||
projectile_accuracy = 100
|
||||
|
||||
reload_max = 5
|
||||
reload_time = 2.0 SECONDS
|
||||
reload_max = 1
|
||||
reload_time = 1.5 SECONDS
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged/sniper
|
||||
|
||||
ranged_attack_delay = 0.5 SECONDS
|
||||
ranged_attack_delay = 1.5 SECONDS
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/ranged_pre_animation(atom/A)
|
||||
Beam(get_turf(A), icon_state = "sniper_beam", time = 1 SECONDS, maxdistance = 15)
|
||||
@@ -277,16 +278,17 @@
|
||||
//The lunar mobs, highly resistant to brute based damage.
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar
|
||||
name = "Lunar Eclipse Initiate"
|
||||
desc = "A silver cladded, dangerous looking indivual."
|
||||
desc = "A dangerous indivual, a gleaming red shield surronding them, seemingly protected from blunt force trauma and ballastics."
|
||||
|
||||
armor = list(melee = 95, bullet = 95, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100) //Lunar members are nigh immune to burns.
|
||||
armor_soak = list(melee = 15, bullet = 5, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) //15 because every melee weapon has dumb amount of AP
|
||||
armor = list(melee = 75, bullet = 75, laser = -10, energy = -10, bomb = 50, bio = 100, rad = 100) //Lunar members are nigh immune to burns.
|
||||
armor_soak = list(melee = 15, bullet = 15, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) //15 because every melee weapon has dumb amount of AP
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle //Bouncing bullet extreme
|
||||
name = "Lunar Eclipse Silver Serpent"
|
||||
health = 125
|
||||
maxHealth = 125
|
||||
reload_max = 15
|
||||
health = 100
|
||||
maxHealth = 100
|
||||
reload_max = 6
|
||||
movement_cooldown = 1
|
||||
|
||||
icon_state = "eclipse_silver"
|
||||
icon_living = "eclipse_silver"
|
||||
@@ -318,8 +320,8 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/shotgunner //wuff with shotgun
|
||||
name = "Lunar Eclipse Shotgunner"
|
||||
health = 90
|
||||
maxHealth = 90
|
||||
health = 75
|
||||
maxHealth = 75
|
||||
reload_max = 2
|
||||
|
||||
icon_state = "eclipse_shotwuff"
|
||||
@@ -331,10 +333,11 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm //tesh got a gun
|
||||
name = "Lunar Eclipse Judge"
|
||||
health = 75
|
||||
maxHealth = 75
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
icon_state = "eclipse_shottesh"
|
||||
icon_living = "eclipse_shottesh"
|
||||
movement_cooldown = -1
|
||||
|
||||
|
||||
projectiletype = /obj/item/projectile/bullet/shotgun
|
||||
@@ -346,8 +349,8 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/ravanger //Tanky boi. Very deadly melee
|
||||
name = "Lunar Eclipse Ravanger"
|
||||
health = 150
|
||||
maxHealth = 150
|
||||
health = 125
|
||||
maxHealth = 125
|
||||
icon_state = "eclipse_ravanger"
|
||||
icon_living = "eclipse_ravanger"
|
||||
|
||||
@@ -366,10 +369,10 @@
|
||||
|
||||
|
||||
/obj/item/projectile/energy/blob/moth
|
||||
splatter = TRUE
|
||||
damage = 20
|
||||
armor_penetration = 25
|
||||
my_chems = list("fuel")
|
||||
my_chems = list("fuel", "mold")
|
||||
flammability = 0.25
|
||||
modifier_type_to_apply = /datum/modifier/fire
|
||||
modifier_duration = 6 SECONDS
|
||||
color = "#38b9ff"
|
||||
@@ -392,6 +395,7 @@
|
||||
|
||||
/obj/item/projectile/beam/sniper/eclipse
|
||||
armor_penetration = 50
|
||||
damage = 30
|
||||
|
||||
/obj/item/projectile/energy/declone/burn
|
||||
damage = 20
|
||||
@@ -405,11 +409,11 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/hellhound
|
||||
name = "Solar Eclipse Hound"
|
||||
health = 200
|
||||
maxHealth = 200
|
||||
health = 150
|
||||
maxHealth = 150
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
projectiletype = /obj/item/projectile/energy/flash
|
||||
movement_cooldown = 1
|
||||
movement_cooldown = -1
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 35
|
||||
attack_armor_pen = 20
|
||||
@@ -418,25 +422,25 @@
|
||||
icon_living = "eclipse_hound"
|
||||
size_multiplier = 1.25
|
||||
var/poison_chance = 100
|
||||
var/poison_per_bite = 8
|
||||
var/poison_per_bite = 4
|
||||
var/poison_type = "stoxin"
|
||||
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/wheel
|
||||
name = "Lunar Eclipse Wheel"
|
||||
health = 200
|
||||
maxHealth = 200
|
||||
name = "Lunar Eclipse Armadillo"
|
||||
health = 150
|
||||
maxHealth = 150
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 25
|
||||
attack_armor_pen = 50
|
||||
reload_max = 3
|
||||
reload_max = 1
|
||||
icon_state = "eclipse_wheel"
|
||||
icon_living = "eclipse_wheel"
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
projectiletype = /obj/item/projectile/beam/energy_net
|
||||
movement_cooldown = 2
|
||||
movement_cooldown = -0.5
|
||||
|
||||
var/cloaked_alpha = 50 // Lower = Harder to see.
|
||||
var/cloaked_alpha = 60 // Lower = Harder to see.
|
||||
var/cloak_cooldown = 5 SECONDS // Amount of time needed to re-cloak after losing it.
|
||||
var/last_uncloak = 0 // world.time
|
||||
|
||||
@@ -539,21 +543,22 @@
|
||||
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/pummler
|
||||
name = "Lunar Eclipse Punnler"
|
||||
name = "Lunar Eclipse Pummeler"
|
||||
projectiletype = /obj/item/projectile/bullet/shotgun/ion/eclipse
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
melee_damage_lower = 20
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 30
|
||||
attack_armor_pen = 30
|
||||
movement_cooldown = 1
|
||||
movement_cooldown = 0
|
||||
icon_state = "eclipse_pummler"
|
||||
icon_living = "eclipse_pummler"
|
||||
reload_max = 25
|
||||
reload_max = 5
|
||||
size_multiplier = 1.5
|
||||
var/poison_per_bite = 5
|
||||
var/poison_type = "shredding_nanites"
|
||||
var/poison_chance = 50
|
||||
var/shock_chance = 30
|
||||
var/poison_chance = 10
|
||||
var/shock_chance = 60
|
||||
base_attack_cooldown = 6
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/pummler/apply_melee_effects(var/atom/A)
|
||||
if(isliving(A))
|
||||
|
||||
@@ -159,6 +159,7 @@
|
||||
belly_data["digest_oxy"] = B.digest_oxy
|
||||
|
||||
belly_data["can_taste"] = B.can_taste
|
||||
belly_data["is_feedable"] = B.is_feedable
|
||||
belly_data["contaminates"] = B.contaminates
|
||||
belly_data["contamination_flavor"] = B.contamination_flavor
|
||||
belly_data["contamination_color"] = B.contamination_color
|
||||
|
||||
Reference in New Issue
Block a user