mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Polaris sync
This commit is contained in:
@@ -523,7 +523,7 @@
|
||||
|
||||
/obj/item/ammo_magazine/clip/c12g/beanbag
|
||||
name = "ammo clip (12g beanbag)"
|
||||
icon_state = "12gclipbeanbag"
|
||||
icon_state = "12gclipbean"
|
||||
desc = "A color-coded metal clip for holding and quickly loading shotgun shells. This one is loaded with beanbags."
|
||||
ammo_type = /obj/item/ammo_casing/a12g/beanbag
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1070) //beanbags x4 + 350 metal
|
||||
|
||||
@@ -174,4 +174,17 @@
|
||||
power_supply = new /obj/item/weapon/cell/device/weapon(src)
|
||||
self_recharge = 1
|
||||
processing_objects.Add(src)
|
||||
update_icon()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/energy/get_description_interaction()
|
||||
var/list/results = list()
|
||||
|
||||
if(!battery_lock && !self_recharge)
|
||||
if(power_supply)
|
||||
results += "[desc_panel_image("offhand")]to remove the weapon cell."
|
||||
else
|
||||
results += "[desc_panel_image("weapon cell")]to add a new weapon cell."
|
||||
|
||||
results += ..()
|
||||
|
||||
return results
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/weapon/gun/energy/laser
|
||||
name = "laser carbine"
|
||||
desc = "An Hesphaistos Industries G40E carbine, designed to kill with concentrated energy blasts. This varient has the ability to \
|
||||
desc = "A Hephaestus Industries G40E carbine, designed to kill with concentrated energy blasts. This varient has the ability to \
|
||||
switch between standard fire and a more efficent but weaker 'suppressive' fire."
|
||||
icon_state = "laser"
|
||||
item_state = "laser"
|
||||
@@ -108,7 +108,7 @@ obj/item/weapon/gun/energy/retro
|
||||
|
||||
/obj/item/weapon/gun/energy/sniperrifle
|
||||
name = "marksman energy rifle"
|
||||
desc = "The HI DMR 9E is an older design of Hesphaistos Industries. A designated marksman rifle capable of shooting powerful \
|
||||
desc = "The HI DMR 9E is an older design of Hephaestus Industries. A designated marksman rifle capable of shooting powerful \
|
||||
ionized beams, this is a weapon to kill from a distance."
|
||||
icon_state = "sniper"
|
||||
item_state = "sniper"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
/obj/item/weapon/gun/energy/stunrevolver
|
||||
name = "stun revolver"
|
||||
desc = "A LAEP20 Zeus. Designed by Lawson Arms and produced under the wing of the FTU, several TSCs have been trying to get a hold of the blueprints for half a decade."
|
||||
desc = "A LAEP20 Zeus. Designed by Lawson Arms and produced under the wing of Hephaestus, several TSCs have been trying to get a hold of the blueprints for half a decade."
|
||||
icon_state = "stunrevolver"
|
||||
item_state = "stunrevolver"
|
||||
fire_sound = 'sound/weapons/Gunshot.ogg'
|
||||
|
||||
@@ -2,78 +2,14 @@
|
||||
name = "temperature gun"
|
||||
icon_state = "freezegun"
|
||||
fire_sound = 'sound/weapons/pulse3.ogg'
|
||||
desc = "A gun that changes temperatures. It has a small label on the side, 'More extreme temperatures will cost more charge!'"
|
||||
var/temperature = T20C
|
||||
var/current_temperature = T20C
|
||||
charge_cost = 24
|
||||
desc = "A gun that can add or remove heat from entities it hits. In other words, it can fire 'cold', and 'hot' beams."
|
||||
charge_cost = 240
|
||||
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 4, TECH_POWER = 3, TECH_MAGNET = 2)
|
||||
slot_flags = SLOT_BELT|SLOT_BACK
|
||||
|
||||
projectile_type = /obj/item/projectile/temp
|
||||
cell_type = /obj/item/weapon/cell/high
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/temperature/New()
|
||||
..()
|
||||
processing_objects.Add(src)
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/temperature/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/temperature/attack_self(mob/living/user as mob)
|
||||
user.set_machine(src)
|
||||
var/temp_text = ""
|
||||
if(temperature > (T0C - 50))
|
||||
temp_text = "<FONT color=black>[temperature] ([round(temperature-T0C)]°C) ([round(temperature*1.8-459.67)]°F)</FONT>"
|
||||
else
|
||||
temp_text = "<FONT color=blue>[temperature] ([round(temperature-T0C)]°C) ([round(temperature*1.8-459.67)]°F)</FONT>"
|
||||
|
||||
var/dat = {"<B>Freeze Gun Configuration: </B><BR>
|
||||
Current output temperature: [temp_text]<BR>
|
||||
Target output temperature: <A href='?src=\ref[src];temp=-100'>-</A> <A href='?src=\ref[src];temp=-10'>-</A> <A href='?src=\ref[src];temp=-1'>-</A> [current_temperature] <A href='?src=\ref[src];temp=1'>+</A> <A href='?src=\ref[src];temp=10'>+</A> <A href='?src=\ref[src];temp=100'>+</A><BR>
|
||||
"}
|
||||
|
||||
user << browse(dat, "window=freezegun;size=450x300;can_resize=1;can_close=1;can_minimize=1")
|
||||
onclose(user, "window=freezegun", src)
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/temperature/Topic(href, href_list)
|
||||
if (..())
|
||||
return 1
|
||||
usr.set_machine(src)
|
||||
src.add_fingerprint(usr)
|
||||
|
||||
|
||||
|
||||
if(href_list["temp"])
|
||||
var/amount = text2num(href_list["temp"])
|
||||
if(amount > 0)
|
||||
src.current_temperature = min(500, src.current_temperature+amount)
|
||||
else
|
||||
src.current_temperature = max(0, src.current_temperature+amount)
|
||||
if (istype(src.loc, /mob))
|
||||
attack_self(src.loc)
|
||||
src.add_fingerprint(usr)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/temperature/process()
|
||||
switch(temperature)
|
||||
if(0 to 100) charge_cost = 1000
|
||||
if(100 to 250) charge_cost = 500
|
||||
if(251 to 300) charge_cost = 100
|
||||
if(301 to 400) charge_cost = 500
|
||||
if(401 to 500) charge_cost = 1000
|
||||
|
||||
if(current_temperature != temperature)
|
||||
var/difference = abs(current_temperature - temperature)
|
||||
if(difference >= 10)
|
||||
if(current_temperature < temperature)
|
||||
temperature -= 10
|
||||
else
|
||||
temperature += 10
|
||||
else
|
||||
temperature = current_temperature
|
||||
firemodes = list(
|
||||
list(mode_name="endothermic beam", projectile_type = /obj/item/projectile/temp, charge_cost = 240),
|
||||
list(mode_name="exothermic beam", projectile_type = /obj/item/projectile/temp/hot, charge_cost = 240),
|
||||
)
|
||||
|
||||
@@ -19,13 +19,14 @@
|
||||
|
||||
/obj/item/ammo_casing/chemdart
|
||||
name = "chemical dart"
|
||||
desc = "A small hardened, hollow dart."
|
||||
icon_state = "dart"
|
||||
desc = "A casing containing a small hardened, hollow dart."
|
||||
icon_state = "dartcasing"
|
||||
caliber = "dart"
|
||||
projectile_type = /obj/item/projectile/bullet/chemdart
|
||||
|
||||
/obj/item/ammo_casing/chemdart/expend()
|
||||
qdel(src)
|
||||
..()
|
||||
//qdel(src) //Wasn't able to find the exact issue with the qdel-ing. Possibly because it was still being processed by the gun when this is called.
|
||||
|
||||
/obj/item/ammo_magazine/chemdart
|
||||
name = "dart cartridge"
|
||||
@@ -42,8 +43,12 @@
|
||||
/obj/item/weapon/gun/projectile/dartgun
|
||||
name = "dart gun"
|
||||
desc = "Zeng-Hu Pharmaceutical's entry into the arms market, the Z-H P Artemis is a gas-powered dart gun capable of delivering chemical cocktails swiftly across short distances."
|
||||
description_info = "The dart gun is capable of storing three beakers. In order to use the dart gun, you must first use it in-hand to open its mixing UI. The dart-gun will only draw from beakers with mixing enabled. If multiple are enabled, the gun will draw from them in equal amounts."
|
||||
description_antag = "The dart gun is silenced, but cannot pierce thick clothing such as armor or space-suits, and thus is better for use against soft targets, or commonly exposed areas of the body."
|
||||
icon_state = "dartgun-empty"
|
||||
item_state = null
|
||||
var/base_state = "dartgun"
|
||||
origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 6, TECH_BIO = 5, TECH_MAGNET = 2, TECH_ILLEGAL = 3)
|
||||
|
||||
caliber = "dart"
|
||||
fire_sound = 'sound/weapons/empty.ogg'
|
||||
@@ -53,6 +58,8 @@
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/chemdart
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/chemdart)
|
||||
var/default_magazine_casing_count = 5
|
||||
var/track_magazine = 1
|
||||
auto_eject = 0
|
||||
|
||||
var/list/beakers = list() //All containers inside the gun.
|
||||
@@ -62,7 +69,7 @@
|
||||
var/container_type = /obj/item/weapon/reagent_containers/glass/beaker
|
||||
var/list/starting_chems = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/dartgun/New() //VOREStation Edit - Think this was a typo
|
||||
/obj/item/weapon/gun/projectile/dartgun/New()
|
||||
..()
|
||||
if(starting_chems)
|
||||
for(var/chem in starting_chems)
|
||||
@@ -73,16 +80,18 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/dartgun/update_icon()
|
||||
if(!ammo_magazine)
|
||||
icon_state = "dartgun-empty"
|
||||
icon_state = "[base_state]-empty"
|
||||
return 1
|
||||
if(track_magazine)
|
||||
if(!ammo_magazine.stored_ammo || ammo_magazine.stored_ammo.len == 0)
|
||||
icon_state = "[base_state]-0"
|
||||
else if(ammo_magazine.stored_ammo.len > default_magazine_casing_count)
|
||||
icon_state = "[base_state]-[default_magazine_casing_count]"
|
||||
else
|
||||
icon_state = "[base_state]-[ammo_magazine.stored_ammo.len]"
|
||||
return 1
|
||||
|
||||
if(!ammo_magazine.stored_ammo || ammo_magazine.stored_ammo.len)
|
||||
icon_state = "dartgun-0"
|
||||
else if(ammo_magazine.stored_ammo.len > 5)
|
||||
icon_state = "dartgun-5"
|
||||
else
|
||||
icon_state = "dartgun-[ammo_magazine.stored_ammo.len]"
|
||||
return 1
|
||||
icon_state = "[base_state]"
|
||||
|
||||
/obj/item/weapon/gun/projectile/dartgun/consume_next_projectile()
|
||||
. = ..()
|
||||
@@ -193,3 +202,39 @@
|
||||
unload_ammo(usr)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
///Variants of the Dartgun and Chemdarts.///
|
||||
|
||||
/obj/item/weapon/gun/projectile/dartgun/research
|
||||
name = "prototype dart gun"
|
||||
desc = "Zeng-Hu Pharmaceutical's entry into the arms market, the Z-H P Artemis is a gas-powered dart gun capable of delivering chemical cocktails swiftly across short distances. This one seems to be an early model with an NT stamp."
|
||||
description_info = "The dart gun is capable of storing two beakers. In order to use the dart gun, you must first use it in-hand to open its mixing UI. The dart-gun will only draw from beakers with mixing enabled. If multiple are enabled, the gun will draw from them in equal amounts."
|
||||
icon_state = "dartgun_sci-empty"
|
||||
base_state = "dartgun_sci"
|
||||
magazine_type = /obj/item/ammo_magazine/chemdart/small
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/chemdart)
|
||||
default_magazine_casing_count = 3
|
||||
max_beakers = 2
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_BIO = 4, TECH_MAGNET = 2, TECH_ILLEGAL = 1)
|
||||
|
||||
/obj/item/ammo_casing/chemdart/small
|
||||
name = "short chemical dart"
|
||||
desc = "A casing containing a small hardened, hollow dart."
|
||||
icon_state = "dartcasing"
|
||||
caliber = "dart"
|
||||
projectile_type = /obj/item/projectile/bullet/chemdart/small
|
||||
|
||||
/obj/item/ammo_magazine/chemdart/small
|
||||
name = "small dart cartridge"
|
||||
desc = "A rack of hollow darts."
|
||||
icon_state = "darts_small"
|
||||
item_state = "rcdammo"
|
||||
origin_tech = list(TECH_MATERIAL = 2)
|
||||
mag_type = MAGAZINE
|
||||
caliber = "dart"
|
||||
ammo_type = /obj/item/ammo_casing/chemdart/small
|
||||
max_ammo = 3
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/projectile/bullet/chemdart/small
|
||||
reagent_amount = 10
|
||||
|
||||
@@ -7,14 +7,10 @@
|
||||
icon_state = "colt"
|
||||
caliber = ".45"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
fire_sound = 'sound/weapons/gunshot3.ogg'
|
||||
load_method = MAGAZINE
|
||||
|
||||
/obj/item/weapon/gun/projectile/colt/detective
|
||||
desc = "A Martian recreation of an old Terran pistol. Uses .45 rounds."
|
||||
magazine_type = /obj/item/ammo_magazine/m45/rubber
|
||||
|
||||
/obj/item/weapon/gun/projectile/colt/detective/update_icon()
|
||||
/obj/item/weapon/gun/projectile/colt/update_icon()
|
||||
if(ammo_magazine)
|
||||
if(unique_reskin)
|
||||
icon_state = unique_reskin
|
||||
@@ -26,6 +22,10 @@
|
||||
else
|
||||
icon_state = "[initial(icon_state)]-e"
|
||||
|
||||
/obj/item/weapon/gun/projectile/colt/detective
|
||||
desc = "A Martian recreation of an old Terran pistol. Uses .45 rounds."
|
||||
magazine_type = /obj/item/ammo_magazine/m45/rubber
|
||||
|
||||
/obj/item/weapon/gun/projectile/colt/detective/verb/rename_gun()
|
||||
set name = "Name Gun"
|
||||
set category = "Object"
|
||||
@@ -74,7 +74,7 @@
|
||||
magazine_type = /obj/item/ammo_magazine/m45/rubber
|
||||
caliber = ".45"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
fire_sound = 'sound/weapons/gunshot3.ogg'
|
||||
load_method = MAGAZINE
|
||||
|
||||
/obj/item/weapon/gun/projectile/sec/update_icon()
|
||||
@@ -194,7 +194,7 @@
|
||||
caliber = "9mm"
|
||||
silenced = 0
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 2)
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
fire_sound = 'sound/weapons/gunshot3.ogg'
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/m9mm
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m9mm)
|
||||
@@ -298,7 +298,7 @@
|
||||
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2)
|
||||
caliber = "9mm"
|
||||
load_method = MAGAZINE
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
fire_sound = 'sound/weapons/gunshot3.ogg'
|
||||
magazine_type = /obj/item/ammo_magazine/m9mm
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m9mm)
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
icon_state = "detective"
|
||||
caliber = ".38"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
fire_sound = 'sound/weapons/gunshot3.ogg'
|
||||
ammo_type = /obj/item/ammo_casing/a38
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/detective/verb/rename_gun()
|
||||
@@ -73,7 +73,7 @@
|
||||
icon_state = "deckard-empty"
|
||||
caliber = ".38"
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
fire_sound = 'sound/weapons/gunshot3.ogg'
|
||||
ammo_type = /obj/item/ammo_casing/a38
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/deckard/emp
|
||||
@@ -124,7 +124,7 @@
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
||||
handle_casings = CYCLE_CASINGS
|
||||
max_shells = 9
|
||||
fire_sound = 'sound/weapons/semiauto.ogg'
|
||||
fire_sound = 'sound/weapons/gunshot3.ogg'
|
||||
caliber = ".38"
|
||||
ammo_type = /obj/item/ammo_casing/a38
|
||||
var/secondary_max_shells = 1
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat
|
||||
name = "combat shotgun"
|
||||
desc = "Built for close quarters combat, the Hesphaistos Industries KS-40 is widely regarded as a weapon of choice for repelling boarders. Uses 12g rounds."
|
||||
desc = "Built for close quarters combat, the Hephaestus Industries KS-40 is widely regarded as a weapon of choice for repelling boarders. Uses 12g rounds."
|
||||
icon_state = "cshotgun"
|
||||
item_state = "cshotgun"
|
||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
/obj/item/projectile/proc/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null)
|
||||
if(blocked >= 100) return 0//Full block
|
||||
if(!isliving(target)) return 0
|
||||
if(isanimal(target)) return 0
|
||||
// if(isanimal(target)) return 0
|
||||
var/mob/living/L = target
|
||||
L.apply_effects(stun, weaken, paralyze, irradiate, stutter, eyeblur, drowsy, agony, blocked) // add in AGONY!
|
||||
return 1
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
Robot.mmi = new /obj/item/device/mmi(new_mob)
|
||||
Robot.mmi.transfer_identity(M) //Does not transfer key/client.
|
||||
if("slime")
|
||||
new_mob = new /mob/living/carbon/slime(M.loc)
|
||||
new_mob = new /mob/living/simple_animal/slime(M.loc)
|
||||
new_mob.universal_speak = 1
|
||||
else
|
||||
var/mob/living/carbon/human/H
|
||||
|
||||
@@ -111,13 +111,29 @@
|
||||
name = "largebolt"
|
||||
damage = 20
|
||||
|
||||
/obj/item/projectile/energy/acid //Slightly up-gunned (Read: The thing does agony and checks bio resist) variant of the simple alien mob's projectile, for queens and sentinels.
|
||||
name = "acidic spit"
|
||||
icon_state = "neurotoxin"
|
||||
damage = 30
|
||||
damage_type = BURN
|
||||
agony = 10
|
||||
check_armour = "bio"
|
||||
|
||||
/obj/item/projectile/energy/neurotoxin
|
||||
name = "neuro"
|
||||
name = "neurotoxic spit"
|
||||
icon_state = "neurotoxin"
|
||||
damage = 5
|
||||
damage_type = TOX
|
||||
weaken = 5
|
||||
agony = 80
|
||||
check_armour = "bio"
|
||||
|
||||
/obj/item/projectile/energy/neurotoxin/toxic //New alien mob projectile to match the player-variant's projectiles.
|
||||
name = "neurotoxic spit"
|
||||
icon_state = "neurotoxin"
|
||||
damage = 20
|
||||
damage_type = TOX
|
||||
agony = 20
|
||||
check_armour = "bio"
|
||||
|
||||
/obj/item/projectile/energy/phoron
|
||||
name = "phoron bolt"
|
||||
|
||||
@@ -35,19 +35,42 @@
|
||||
icon_state = "ice_2"
|
||||
damage = 0
|
||||
damage_type = BURN
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
nodamage = 1
|
||||
check_armour = "energy"
|
||||
var/temperature = 300
|
||||
check_armour = "energy" // It actually checks heat/cold protection.
|
||||
var/target_temperature = 50
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#55AAFF"
|
||||
|
||||
/obj/item/projectile/temp/on_hit(atom/target, blocked = FALSE)
|
||||
..()
|
||||
if(isliving(target))
|
||||
var/mob/living/L = target
|
||||
|
||||
on_hit(var/atom/target, var/blocked = 0)//These two could likely check temp protection on the mob
|
||||
if(istype(target, /mob/living))
|
||||
var/mob/M = target
|
||||
M.bodytemperature = temperature
|
||||
return 1
|
||||
var/protection = null
|
||||
var/potential_temperature_delta = null
|
||||
var/new_temperature = L.bodytemperature
|
||||
|
||||
if(target_temperature >= T20C) // Make it cold.
|
||||
protection = L.get_cold_protection(target_temperature)
|
||||
potential_temperature_delta = 75
|
||||
new_temperature = max(new_temperature - potential_temperature_delta, target_temperature)
|
||||
else // Make it hot.
|
||||
protection = L.get_heat_protection(target_temperature)
|
||||
potential_temperature_delta = 200 // Because spacemen temperature needs stupid numbers to actually hurt people.
|
||||
new_temperature = min(new_temperature + potential_temperature_delta, target_temperature)
|
||||
|
||||
var/temp_factor = abs(protection - 1)
|
||||
|
||||
new_temperature = round(new_temperature * temp_factor)
|
||||
L.bodytemperature = new_temperature
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/projectile/temp/hot
|
||||
name = "heat beam"
|
||||
target_temperature = 1000
|
||||
|
||||
/obj/item/projectile/meteor
|
||||
name = "meteor"
|
||||
|
||||
Reference in New Issue
Block a user