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

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

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

Mechoid
Copy link
Contributor

@Mechoid Mechoid commented Feb 15, 2023

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
/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
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
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
Copy link
Contributor Author

Mechoid commented Feb 18, 2023

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
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
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
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 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
Copy link
Contributor

@Atermonera Atermonera left a comment

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.

if(A.RelayMouseDrag(src_object, over_object, src_location, over_location, src_control, over_control, params, src))
return

if(over_object)
Copy link
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 on lines 82 to 83
else if(!isturf(loc))
var/atom/movable/AM = loc
Copy link
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
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
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
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
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
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
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
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
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
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 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
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
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
Copy link
Contributor Author

Mechoid commented Apr 24, 2024

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.

None yet

4 participants