Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] Awaymission gun MK2 #328

Merged
merged 5 commits into from
Oct 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 54 additions & 8 deletions modular_ss220/awaymission_gun/code/items/awaymission_gun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,6 @@
can_charge = 0
emagged = FALSE

/obj/item/gun/energy/laser/awaymission_aeg/rnd
name = "Exploreverse Mk I"
desc = "Первый прототип оружия с миниатюрным реактором для исследований в крайне отдаленных секторах. Данную модель невозможно подключить к зарядной станции, во избежание истощения подключенных источников питания, в связи с протоколами безопасности, опустошающие заряд при нахождении вне предназначенных мест использования устройств."

/obj/item/gun/energy/laser/awaymission_aeg/Initialize(mapload)
. = ..()
// Force update it incase it spawns outside an away mission and shouldnt be charged
Expand All @@ -27,12 +23,12 @@

if(is_away_level(new_z))
if(ismob(loc))
to_chat(loc, "<span class='notice'>Ваш [src.name] активируется, начиная потреблять энергию от ближайшего беспроводного источника питания.</span>")
to_chat(loc, span_notice("Ваш [name] активируется, начиная потреблять энергию от ближайшего беспроводного источника питания."))
selfcharge = TRUE
else
if(selfcharge)
if(ismob(loc))
to_chat(loc, "<span class='danger'>Ваш [src.name] деактивируется, так как он находится вне зоны действия источника питания.</span>")
to_chat(loc, span_danger("Ваш [name] деактивируется, так как он находится вне зоны действия источника питания.</span>"))
cell.charge = 0
selfcharge = FALSE
update_icon()
Expand All @@ -42,9 +38,59 @@
if (emagged)
return

user.visible_message("<span class='warning'>От [src.name] летят искры!</span>", "<span class='notice'>Вы взломали [src.name], что привело к перезаписи протоколов безопасности. Устройство может быть использовано вне ограничений.</span>")
playsound(src.loc, 'sound/effects/sparks4.ogg', 30, 1)
if(user)
user.visible_message(span_warning("От [name] летят искры!"), span_notice("Вы взломали [name], что привело к перезаписи протоколов безопасности. Устройство может быть использовано вне ограничений"))
playsound(loc, 'sound/effects/sparks4.ogg', 30, 1)
do_sparks(5, 1, src)

emagged = TRUE
selfcharge = TRUE

/obj/item/gun/energy/laser/awaymission_aeg/emp_act(severity)
. = ..()
emag_act()

// GUNS
/obj/item/gun/energy/laser/awaymission_aeg/rnd
name = "Exploreverse Mk I"
desc = "Первый прототип оружия с миниатюрным реактором для исследований в крайне отдаленных секторах. \
\nДанную модель невозможно подключить к зарядной станции, во избежание истощения подключенных источников питания, \
в связи с протоколами безопасности, опустошающие заряд при нахождении вне предназначенных мест использования устройств."
origin_tech = "combat=3;magnets=3;powerstorage=4"
force = 10

/obj/item/gun/energy/laser/awaymission_aeg/rnd/mk2
name = "Exploreverse Mk II"
desc = "Второй прототип оружия с миниатюрным реактором и ручным восполнением для исследований в крайне отдаленных секторах. \
\nДанная модель оснащена системой ручного восполнения энергии типа \"Za.E.-8 A.L'sya\", \
позволяющий в короткие сроки восполнить необходимую электроэнергию с помощью ручного труда, личной энергии и дергания за рычаг подключенного к системе зарядки. \
\nСистему автозарядки невозможно использовать, в связи с протоколами безопасности, \
опустошающие заряд при нахождении вне предназначенных мест использования устройств. \
\nТеперь еще более нелепый дизайн с торчащими проводами!"
icon_state = "laser_gate_mk2"
origin_tech = "combat=5;magnets=3;powerstorage=5;programming=3;engineering=5"
force = 10

/obj/item/gun/energy/laser/awaymission_aeg/rnd/mk2/attack_self(mob/living/user)
var/msg_for_all = span_warning("[user.name] усердно давит на рычаг зарядки [name], но он не поддается!")
var/msg_for_user = span_notice("Вы пытаетесь надавить на рычаг зарядки [name], но он заблокирован.")

if(!is_away_level(loc.z) && !emagged)
user.visible_message(msg_for_all, msg_for_user)
return FALSE

if(cell.charge >= cell.maxcharge)
user.visible_message(msg_for_all, msg_for_user)
return FALSE

if(user.nutrition <= NUTRITION_LEVEL_HYPOGLYCEMIA)
user.visible_message(span_warning("[user.name] слабо давит на [name], но он ослаб!"), span_notice("Вы пытаетесь надавить на рычаг зарядки [name], но не можете из-за усталости!"))
return FALSE

playsound(loc, 'sound/effects/sparks3.ogg', 10, 1)
do_sparks(1, 1, src)

cell.give(25)
user.adjust_nutrition(-2)

. = ..()
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
/datum/design/gate_gun
name = "Gate Energy Gun"
/datum/design/gate_gun_mk1
name = "Gate Energy Gun MK1"
desc = "An energy gun with an experimental miniaturized reactor. Only works in the gate" //не отображаемое описание, т.к. печатается без кейса
id = "gate_energy_gun"
req_tech = list("combat" = 5, "magnets" = 3, "powerstorage" = 4)
req_tech = list("combat" = 3, "magnets" = 3, "powerstorage" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 8000, MAT_GLASS = 2000, MAT_URANIUM = 1500, MAT_TITANIUM = 500)
materials = list(MAT_METAL = 6000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_TITANIUM = 500)
build_path = /obj/item/gun/energy/laser/awaymission_aeg/rnd
locked = 0
category = list("Weapons")

/datum/design/gate_gun_mk2
name = "Gate Energy Gun MK2"
desc = "An energy gun with an experimental miniaturized reactor. Only works in the gate" //не отображаемое описание, т.к. печатается без кейса
id = "gate_energy_gun_mk2"
req_tech = list("combat" = 5, "magnets" = 3, "powerstorage" = 5, "programming" = 3, "engineering" = 5)
build_type = PROTOLATHE
materials = list(MAT_METAL = 8000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 500, MAT_SILVER = 1000)
build_path = /obj/item/gun/energy/laser/awaymission_aeg/rnd/mk2
locked = 0
category = list("Weapons")
Binary file modified modular_ss220/awaymission_gun/icons/items/energy.dmi
Binary file not shown.