-
Notifications
You must be signed in to change notification settings - Fork 33
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
A very strange roomba. #523
base: master
Are you sure you want to change the base?
Conversation
… toootally should...
…... (gonna fix that somehow)
maplestation_modules/story_content/volkan_equipment/audio/vroomba_accept.wav
Outdated
Show resolved
Hide resolved
maplestation_modules/story_content/volkan_equipment/code/volkanpets.dm
Outdated
Show resolved
Hide resolved
///The vroomba is not killed by EMPs but it does stun it for a short moment. | ||
/mob/living/basic/bot/cleanbot/vroomba/emp_act(severity) | ||
if(. & EMP_PROTECT_SELF) | ||
return | ||
Stun(4) | ||
to_chat(src, span_danger("WARN: EMP DETECTED.")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe you should be overriding emp_reaction
, rather than make emp_act
not call parent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, Stun(0.4 SECONDS)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't want it to do the stuff cleanbots do when EMPd, how do I avoid that?
maplestation_modules/story_content/volkan_equipment/code/volkanpets.dm
Outdated
Show resolved
Hide resolved
INVOKE_ASYNC(O, TYPE_PROC_REF(/atom, attack_hand), user) | ||
return COMPONENT_CANCEL_ATTACK_CHAIN |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wait, if it fails to TK then it forces an attack_hand
?
That seems very prone to causing bugs (off the top of my head you can click on any target out of range to interact with it, because out of range -> focus fails, which in turn means you can teleport stuff from across the room)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's so it can open doors and such if it cannot lift the object. Is there something else i can call for it to be able to do that?
EDIT: I got confused, this is the thing that actually makes the telekinesis work in the first place. If I do not have it, it cannot lift up objects telekinetically. The on_unarmed_attack
proc is the one for doors, not this one.
Something similar is in the actual telekinesis code as well, so that is why it is here. I forgot the exaaact reason for it though.
As of right now, it cannot pick up items that is out of range due to a bunch of checks.
Unless you mean the COMPONENT_CANCEL_ATTACK_CHAIN
part? I thought that cancels the attack chain. Did I misunderstand how that works?
INVOKE_ASYNC(target, TYPE_PROC_REF(/atom, attack_hand_secondary), hand_haver, modifiers) | ||
else | ||
INVOKE_ASYNC(target, TYPE_PROC_REF(/atom, attack_hand), hand_haver, modifiers) | ||
INVOKE_ASYNC(hand_haver, TYPE_PROC_REF(/mob, update_held_items)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's this update_held_items
for?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no idea, I copied this from the dextrous component...
/// Interact with items at range. replaces on_unarmed_attack. | ||
/datum/component/tractorfield/proc/on_unarmed_attack(mob/living/hand_haver, atom/target, proximity, modifiers) | ||
SIGNAL_HANDLER | ||
if (!proximity && target.loc != hand_haver) | ||
var/obj/item/obj_item = target | ||
if (istype(obj_item) && !obj_item.atom_storage && !(obj_item.item_flags & IN_STORAGE)) | ||
return NONE |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a little confused what's going on here exactly, I think this code is to make unarmed_attack
call attack_hand
?
Have you tried looking into resolve_unarmed_attack
? It might cover this for you
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is called so it can interact with doors and lockers and whatnot at range.
Its because the mobs that can get the tractor field component doesn't actually have a on_unarmed_attack
. I tried to use resolve_unarmed_attack
but that just made the Vroomba attack itself when I clicked on a door. doors do not have a resolve_unarmed_attack
so I cannot call it on that either...
Maybe I am just confused.
maplestation_modules/story_content/volkan_equipment/code/volkancomponents.dm
Outdated
Show resolved
Hide resolved
maplestation_modules/story_content/volkan_equipment/code/volkancomponents.dm
Show resolved
Hide resolved
I will do these reviews and also make a new item that is a proprietary technology that the roomba will have inside. |
Why is that not working |
i dunno how to get a basic roomba attack working lol |
btw I got the attack working! I will change the roomba sprite for lore reasons! |
The last roomba died!! The new one has white paint.
From
SaSE'sVolkan's Workshop...A roomba. It cleans things.
The fact it can decide to float and possibly attack people is just a rumor, okay?
TODO: