FEAT: Two new attachable armor for Ripley (#25231)

* FEAT: Two new attachable armor for Ripley

* Delete mecha 32x48.dmi

* Update code/game/objects/items/stacks/sheets/leather.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/game/mecha/working/ripley.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/game/mecha/working/ripley.dm

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>

* Add defines into separate files, change descriptions a bit

* fix

* change (loc) to get_turf(src)

* mecha

* edit defines

* Update leather.dm

* Update code/game/mecha/working/ripley.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Signed-off-by: Сиротка <114731039+ErdGinalD@users.noreply.github.com>

* Update leather.dm

* Update code/game/objects/items/stacks/sheets/leather.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Signed-off-by: Сиротка <114731039+ErdGinalD@users.noreply.github.com>

* Update mechfabricator_designs.dm

* fix .dmi

* Update code/game/mecha/working/ripley.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Сиротка <114731039+ErdGinalD@users.noreply.github.com>

* Update code/game/mecha/working/ripley.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Сиротка <114731039+ErdGinalD@users.noreply.github.com>

* Update code/game/mecha/working/ripley.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Сиротка <114731039+ErdGinalD@users.noreply.github.com>

* Update ripley.dm

* Update code/game/objects/items/stacks/sheets/leather.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Сиротка <114731039+ErdGinalD@users.noreply.github.com>

* Update code/game/objects/items/stacks/sheets/leather.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Сиротка <114731039+ErdGinalD@users.noreply.github.com>

---------

Signed-off-by: Сиротка <114731039+ErdGinalD@users.noreply.github.com>
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
Сиротка
2024-05-17 12:45:32 +00:00
committed by GitHub
co-authored by Henri215 1080pCat DGamerL
parent 9afec80430
commit b216289b41
9 changed files with 158 additions and 33 deletions
@@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
/obj/item/stack/sheet/animalhide/goliath_hide
name = "goliath hide plates"
desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna."
desc = "Pieces of a goliath's rocky hide, these might be able to make your miner equipment such as suits, plasmaman helmets, borgs and Ripley class exosuits a bit more durable to attack from the local fauna."
icon = 'icons/obj/stacks/organic.dmi'
icon_state = "goliath_hide"
item_state = "goliath_hide"
@@ -198,41 +198,80 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
if(is_type_in_typecache(target, goliath_platable_armor_typecache))
var/obj/item/clothing/C = target
var/datum/armor/current_armor = C.armor
if(current_armor.getRating(MELEE) < 60)
C.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 10, 60))
if(current_armor.getRating(MELEE) < 75)
if(!use(1))
to_chat(user, "<span class='notice'>You dont have enough [src] for this!</span>")
return
C.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 15, 75))
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>")
use(1)
else
to_chat(user, "<span class='warning'>You can't improve [C] any further!</span>")
else if(istype(target, /obj/mecha/working/ripley))
var/obj/mecha/working/ripley/D = target
if(D.hides < 3)
if(D.hides < HIDES_COVERED_FULL && !D.plates && !D.drake_hides)
if(!use(1))
to_chat(user, "<span class='notice'>You dont have enough [src] for this!</span>")
return
D.hides++
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 10, 70))
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 5, 50))
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 5, 50))
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>")
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 25, 115))
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 7, 60))
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 7, 60))
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against attacks.</span>")
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
use(1)
else
to_chat(user, "<span class='warning'>You can't improve [D] any further!</span>")
else if(isrobot(target))
var/mob/living/silicon/robot/R = target
if(istype(R.module, /obj/item/robot_module/miner))
var/datum/armor/current_armor = R.armor
if(current_armor.getRating(MELEE) < 60)
R.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 10, 60))
if(current_armor.getRating(MELEE) < 75)
if(!use(1))
to_chat(user, "<span class='notice'>You dont have enough [src] for this!</span>")
return
R.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 15, 75))
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>")
use(1)
else
to_chat(user, "<span class='warning'>You can't improve [R] any further!</span>")
else
to_chat(user, "<span class='warning'>[R]'s armor can not be improved!</span>")
/obj/item/stack/sheet/animalhide/armor_plate
name = "armor plate"
desc = "This piece of metal can be attached to the mech itself, enhancing its protective characteristics. Unfortunately, only working class exosuits have notches for such armor."
icon = 'icons/mecha/mecha_equipment.dmi'
icon_state = "armor_plate"
item_state = "armor_plate"
singular_name = "armor plate"
flags = NOBLUDGEON
w_class = WEIGHT_CLASS_NORMAL
layer = MOB_LAYER
/obj/item/stack/sheet/animalhide/armor_plate/afterattack(atom/target, mob/user, proximity_flag)
if(!proximity_flag)
return
if(istype(target, /obj/mecha/working/ripley))
var/obj/mecha/working/ripley/D = target
if(D.plates < PLATES_COVERED_FULL && !D.hides && !D.drake_hides)
if(!use(1))
to_chat(user, "<span class='notice'>You dont have enough [src] for this!</span>")
return
use(1)
D.plates++
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 10, 70))
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 4, 50))
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 4, 50))
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against attacks.</span>")
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
else
to_chat(user, "<span class='warning'>You can't improve [D] any further!</span>")
/obj/item/stack/sheet/animalhide/armor_plate/attackby(obj/item/W, mob/user, params)
return // no steel leather for ya
/obj/item/stack/sheet/animalhide/ashdrake
name = "ash drake hide"
desc = "The strong, scaled hide of an ash drake."
desc = "The strong, scaled hide of an ash drake. Can be attached to the mech itself, greatly enhancing its protective characteristics. Unfortunately, only working class exosuits have notches for such armor."
icon = 'icons/obj/stacks/organic.dmi'
icon_state = "dragon_hide"
item_state = "dragon_hide"
@@ -242,9 +281,30 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
layer = MOB_LAYER
dynamic_icon_state = TRUE
/obj/item/stack/sheet/animalhide/ashdrake/afterattack(atom/target, mob/user, proximity_flag)
if(!proximity_flag)
return
if(istype(target, /obj/mecha/working/ripley))
var/obj/mecha/working/ripley/D = target
if(D.drake_hides < DRAKE_HIDES_COVERED_FULL && !D.hides && !D.plates)
if(!use(1))
to_chat(user, "<span class='notice'>You dont have enough [src] for this!</span>")
return
use(1)
D.drake_hides++
D.max_integrity += 50
D.obj_integrity += 50
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 45, 175)) // 77.7% melee armor maximum
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 7, 60))
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 7, 60))
to_chat(user, "<span class='info'>You strengthen [target], improving its resistance against attacks.</span>")
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
else
to_chat(user, "<span class='warning'>You can't improve [D] any further!</span>")
//Step one - dehairing.
/obj/item/stack/sheet/animalhide/attackby(obj/item/W as obj, mob/user as mob, params)
/obj/item/stack/sheet/animalhide/attackby(obj/item/W, mob/user, params)
if(W.sharp)
user.visible_message("[user] starts cutting hair off \the [src].", "<span class='notice'>You start cutting the hair off \the [src]...</span>", "<span class='italics'>You hear the sound of a knife rubbing against flesh.</span>")
if(do_after(user, 50 * W.toolspeed, target = src))