Skip to content

Nebbaymechs as Exosuits, Legally Distinct from Mechas, obviously. - #8956

Open
Mechoid wants to merge 16 commits into
PolarisSS13:masterfrom
Mechoid:NebbayMechsIMeanExosuits
Open

Nebbaymechs as Exosuits, Legally Distinct from Mechas, obviously.#8956
Mechoid wants to merge 16 commits into
PolarisSS13:masterfrom
Mechoid:NebbayMechsIMeanExosuits

Conversation

@Mechoid

@Mechoid Mechoid commented Feb 15, 2023

Copy link
Copy Markdown
Contributor

Work on porting baymechs as exosuits, legally distinct from Mechs:tm:

@Mechoid Mechoid added Do Not Merge Generic DNM label. and removed Do Not Merge Generic DNM label. labels Feb 15, 2023
@Mechoid
Mechoid marked this pull request as ready for review February 16, 2023 10:46
@Mechoid Mechoid changed the title [WIP] [DNM] Nebbaymechs as Exosuits, Legally Distinct from Mechas, obviously. Nebbaymechs as Exosuits, Legally Distinct from Mechas, obviously. Feb 16, 2023
Comment thread code/modules/exosuits/component/head.dm Outdated
/obj/item/mech_component/sensors/attackby(var/obj/item/thing, var/mob/user)
if(istype(thing, /obj/item/mech_component/control_module))
if(software)
to_chat(user, SPAN_WARNING("\The [src] already has a control modules installed."))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A control module


/obj/item/ammo_magazine/mech/smg_top
name = "large 7mm magazine"
desc = "A large magazine for a mech's gun. Looks way too big for a normal gun."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might want the desc on the parent of this, so it'll show for the other mags?

@Mechoid

Mechoid commented Feb 18, 2023

Copy link
Copy Markdown
Contributor Author

Right, I don't quite understand why Dreamchecker is complaining now, as 2 are global procs, and one is just a for loop with an internal var

@@ -0,0 +1,90 @@
/mob/living/exosuit/premade/light

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This and the sleek exosuit seem to be almost the same thing, just with slight different descriptions/names, are they differernt icons?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Different icons, yes.

@Atermonera Atermonera added Feature The PR adds new functionality in some way. Port [PR] This is code or assets from another codebase. labels Feb 26, 2023
@Atermonera

Copy link
Copy Markdown
Contributor

For the record, I am working on a review of this, but its size sorta demands it go to the backlog given the volume of PRs open rn.

@Spookerton Spookerton added the Stale [PR] This requires additional work and appears abandoned. label Aug 23, 2023
@Spookerton
Spookerton marked this pull request as draft August 23, 2023 15:16
@Mechoid
Mechoid force-pushed the NebbayMechsIMeanExosuits branch from 2975058 to 5ba9fb1 Compare September 4, 2023 12:15
@Mechoid
Mechoid marked this pull request as ready for review September 4, 2023 12:15
@Mechoid
Mechoid force-pushed the NebbayMechsIMeanExosuits branch 2 times, most recently from 34201cd to 6101752 Compare September 4, 2023 14:50

@Atermonera Atermonera left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That took, entirely longer than it ought to have, but I have completed An Serious Review of this.

Comment thread code/_onclick/MouseDrag.dm Outdated
if(A.RelayMouseDrag(src_object, over_object, src_location, over_location, src_control, over_control, params, src))
return

if(over_object)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if(over_object)
if(over_object && !incapacitated())

Comment thread code/_onclick/click.dm Outdated
Comment on lines +82 to +83
else if(!isturf(loc))
var/atom/movable/AM = loc

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if loc is null?

var/brute_damage = 0
var/burn_damage = 0
var/max_damage = 60
var/damage_state = 1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Magic number?

dir = SOUTH

/obj/item/mech_component/proc/query_color(var/mob/living/user)
if(user)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if(user)
if(!istype(user))
return FALSE

/obj/item/mech_component/examine(mob/user)
. = ..()
if(ready_to_install())
to_chat(user, SPAN_NOTICE("It is ready for installation."))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

. += SPAN_NOTICE("It is ready for installation.")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also need this format in every definition of show_missing_parts()

Comment on lines +64 to +70
else
if(!newloc)
newloc = get_step(src, direct)
if(newloc && legs && legs.can_move_on(loc, newloc))
. = ..(newloc, direct)
next_step = world.time + legs.move_delay
if(. && !istype(loc, /turf/space))
playsound(src.loc, mech_step_sound, 40, 1)
return .

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
else
if(!newloc)
newloc = get_step(src, direct)
if(newloc && legs && legs.can_move_on(loc, newloc))
. = ..(newloc, direct)
next_step = world.time + legs.move_delay
if(. && !istype(loc, /turf/space))
playsound(src.loc, mech_step_sound, 40, 1)
return .
. = FALSE
if(!newloc)
newloc = get_step(src, direct)
if(newloc && legs && legs.can_move_on(loc, newloc))
. = ..(newloc, direct)
next_step = world.time + legs.move_delay
if(. && !istype(loc, /turf/space))
playsound(src.loc, mech_step_sound, 40, 1)

All the previous return statements are explicitly returning FALSE anyways.

Comment on lines +74 to +115
/*
/datum/movement_handler/mob/space/exosuit
expected_host_type = /mob/living/exosuit

// Space movement
/datum/movement_handler/mob/space/exosuit/DoMove(var/direction, var/mob/mover)

if(!mob.check_solid_ground())
mob.anchored = FALSE
var/allowmove = mob.Allow_Spacemove(0)
if(!allowmove)
return MOVEMENT_HANDLED
else if(allowmove == -1 && mob.handle_spaceslipping()) //Check to see if we slipped
return MOVEMENT_HANDLED
else
mob.inertia_dir = 0 //If not then we can reset inertia and move
else mob.anchored = TRUE

/datum/movement_handler/mob/space/exosuit/MayMove(var/mob/mover, var/is_external)
if((mover != host) && is_external)
return MOVEMENT_PROCEED

if(!mob.check_solid_ground())
if(!mob.Allow_Spacemove(0))
return MOVEMENT_STOP
return MOVEMENT_PROCEED

/mob/living/exosuit/lost_in_space()
for(var/atom/movable/AM in contents)
if(!AM.lost_in_space())
return FALSE
return !pilots.len

/mob/living/exosuit/fall_damage()
return 100 //Exosuits are big and heavy

/mob/living/exosuit/handle_fall_effect(var/turf/landing)
// Return here if for any reason you shouldn´t take damage
..()
var/damage = 30 //Enough to cause a malfunction if unlucky
apply_damage(rand(0, damage), BRUTE, BP_R_LEG) //Any leg is good, will damage both
*/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dead code

Comment on lines +45 to +47
if(WT.welding)
cutting = TRUE

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consume weldingfuel?

@@ -0,0 +1,216 @@
#define BAR_CAP 12

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should #undef this at the end of the file, or else it belongs in __defines

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved to the defines

Comment thread code/modules/exosuits/premade/combat.dm Outdated
Comment on lines +26 to +32
/obj/item/mech_component/manipulators/combat
name = "combat arms"
exosuit_desc_string = "flexible, advanced manipulators"
icon_state = "combat_arms"
melee_damage = 5
action_delay = 10
power_use = 50

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should all the components defined in /premade go into files in /components that sort by component type, so it's easier to compare the different options?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorted

@Atermonera Atermonera removed the Stale [PR] This requires additional work and appears abandoned. label Nov 28, 2023
@Mechoid
Mechoid force-pushed the NebbayMechsIMeanExosuits branch from 0549bfe to e6f15eb Compare April 24, 2024 21:41
@Mechoid

Mechoid commented Apr 24, 2024

Copy link
Copy Markdown
Contributor Author

Am I doing something wrong or do rebases just, do that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature The PR adds new functionality in some way. Port [PR] This is code or assets from another codebase.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants