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

A very strange roomba. #523

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

Conversation

Constellado
Copy link
Contributor

@Constellado Constellado commented Jul 5, 2024

From SaSE's Volkan's Workshop...

A roomba. It cleans things.

image

The fact it can decide to float and possibly attack people is just a rumor, okay?

TODO:

  • Make a physical tractor field component
    • Make this act strangely when inside an organic
  • Add ability to put on hats

@Constellado Constellado marked this pull request as ready for review August 1, 2024 13:46
@Constellado Constellado changed the title [DRAFT] A very strange roomba. A very strange roomba. Aug 1, 2024
Comment on lines 225 to 230
///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."))
Copy link
Owner

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.

Copy link
Owner

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)

Copy link
Contributor Author

@Constellado Constellado Aug 25, 2024

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?

Comment on lines +79 to +80
INVOKE_ASYNC(O, TYPE_PROC_REF(/atom, attack_hand), user)
return COMPONENT_CANCEL_ATTACK_CHAIN
Copy link
Owner

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)

Copy link
Contributor Author

@Constellado Constellado Aug 25, 2024

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))
Copy link
Owner

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?

Copy link
Contributor Author

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...

Comment on lines +127 to +133
/// 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
Copy link
Owner

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

Copy link
Contributor Author

@Constellado Constellado Aug 25, 2024

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.

@Constellado
Copy link
Contributor Author

I will do these reviews and also make a new item that is a proprietary technology that the roomba will have inside.
Also gonna add ability to have hats.
Therefore I'm putting it back into draft.

@Constellado Constellado marked this pull request as draft August 5, 2024 04:49
@Constellado Constellado marked this pull request as ready for review September 25, 2024 08:16
@Constellado
Copy link
Contributor Author

Why is that not working

@github-actions github-actions bot added Merge Conflict Resolve it or perish and removed Merge Conflict Resolve it or perish labels Sep 30, 2024
@Constellado
Copy link
Contributor Author

i dunno how to get a basic roomba attack working lol

@github-actions github-actions bot removed the Merge Conflict Resolve it or perish label Oct 20, 2024
@Constellado
Copy link
Contributor Author

btw I got the attack working!

I will change the roomba sprite for lore reasons!
It's going to be painted white. :)
Why? Because the last roomba died so we need a new one.

The last roomba died!! The new one has white paint.
@Constellado
Copy link
Contributor Author

Constellado commented Dec 1, 2024

We have a new roomba, with a new coat of paint!

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants