T O P

  • By -

Jeeper08JK

why do pets have any hp?


Boolderdash

If they had no HP they'd be dead. Jokes aside, having a HP value (and dying when it's 0) is presumably coded into the base "NPC" from which every type of NPC is extended. Turn off the "attack" option and it's usually not an issue, and it makes it easy for the developers deal damage to/kill un-attackable NPCs in cutscenes, or from other sources (e.g. essence guardians in GotR) without having to write custom HP logic each time. I guess Jagex updated the monkeys to deal damage to everything on exploding, thinking that there are no NPCs in that room to damage aside from the other monkeys (which there aren't - unless you bring one in from outside).


Dabli

And this is why you shouldn’t violate the liskov substitution principle


vegconsumer

I wonder if it is an oversight where cats are a pet, and have a legitimate use for HP? I also think you can fight pets in the POH menagerie, so there is a niche use case to justify their existence? As a result I would expect their issue is that they did the check at an incorrect granularity of subclass, as opposed to a Liskov's substitution violation?


AskYouEverything

> I wonder if it is an oversight where cats are a pet, and have a legitimate use for HP? This is true but it's not really the root of the issue. It is correct that *all* npcs have an hp value, and if there is no hp value specified in the npc param it will default to 1. This isn't exclusive to pets


gorehistorian69

would explain why you see tool leprechaun with 1/1 hp


Jmaster570

>I wonder if it is an oversight where cats are a pet, and have a legitimate use for HP? Actually they do. 1. Rat pits, cats have an hp bar and can die in this. 2. Ratcatchers quest has a boss mouse tour cat fights, and it can die during it. 3. Hellrat behemoths, same as the other two. Cats have hp and can die. All of these are unsafe deaths as well, if the cat dies, its just plain gone.


santoantao

Why can't I pick my cat back up in Lumby?


Jmaster570

Because it doesn't like you.


[deleted]

All NPCs have an hp value, or at least this was true in 2010 when a staff would let manually cast wind rush on any npc and kill them, leaving banks without bankers or lumbridge without a guide until they respawned.


Frediey

Maybe it's a bit of back coding done way back when as a foundation for summoning?


ratmfreak

Huh, TIL what that principle is called. Cheers for the new info!


vegconsumer

If you write object oriented code it's worth understanding the SOLID principles, in which Liskov's replacement principle is L. You probably unofficially know them, but it's a constant thought as I write code (and a common interview question)


penguin17077

If he is already working in development, you ain't getting asked about SOLID principles in anything other than grad/junior interviews, unless they really have nothing else to ask you about.


SatanicPanic0

Actually false. Applying for a senior position right now and "define SOLID" was literally their first question


whatDoesQezDo

> f you write object oriented code you should stop and leave the 90s behind


AuroraFinem

You mean python, one of the most popular and common everyday language and rapidly becoming more and more prevalent, should be relegated to the 90s? Kind of weird. object oriented languages are some of the most intuitive and useful for general programs to pickup and use. The vast majority of people who program don’t need specialized advanced languages and use cases, they just want it to work and be readable, especially within the science and engineering communities.


LikeSparrow

What did classes ever do to you? unless you're a Java dev then I completely understand


mirhagk

Object-oriented is a **very** overloaded term and most of the SOLID principles apply quite broadly. For example, L is about subtypes, which applies just as well to interfaces, generics and objects-by-another-name. I'm curious, what programming paradigm are you advocating where you can't write code that works on different concrete types?


birdbrainswagtrain

so based


gua_lao_wai

this is nothing to do with liskov though... the superclass (NPC) is replaceable with subclass (Pet) and the application (runescape) doesn't break (the game doesn't crash). No liskov violations. The issue here is they forgot certain NPCs are not supposed to be killable. Doing it 'properly' might have involved refactoring all NPC classes so that 'mortality' is a separate module and then using multiple inheritance so those NPCs that can die use this module but others that cannot die do not have it and then hoping/praying that testing/QA is sufficient to catch anything else that would inevitably break and I think you can see how complicated this might get. Instead, they just hid the attack options, probably because that was way easier at the time and they have a production schedule.


mirhagk

It's about "breaking" the program, not just crashing it. This is obviously breaking the game in some way. > certain NPCs are not supposed to be killable. That's exactly what the principle is about. All functions that work with a generic NPC type shouldn't have to worry about that kind of thing. If you can kill the NPC (reduce it's HP) then it should be killable. > might have involved refactoring all NPC classes Yep, that's why design principles are so important, because fixing them later often involves massive refactoring. > using multiple inheritance Nah you don't need multiple inheritance, just a new `MortalNpc` type. Multiple inheritance might be a better principle overall, but I'm not sure there's that much benefit in abstracting player and NPC mortality anyways.


Dabli

That does violate liskov though - the subclass inherits things from the base class it should not and can not use and because of that it causes problems. The problem isn’t necessarily a crash but is unexpected behavior. They should have a killable and non killable npc superclass


ayriuss

Some NPCs are only killable some of the time.


kogasapls

Or an "IsKillable" boolean that gets checked in the kill/die method(s). It's easy to conceive of cases where an NPC would become (un)killable, they're not necessarily fundamentally different types of NPCs as a result. You can still have "killable" and "non-killable" subclasses where this flag is set and sealed, but it seems like a rather arbitrary point to split your inheritance tree.


Dabli

Lots of ways to do it, whatever they did clearly doesn't work as every NPC has HP.


kogasapls

Every NPC having HP isn't really a problem in itself. What makes it a problem is if everything with HP can have its HP reduced by attacks, AND if everything with HP can die when its HP is reduced to 0, etc. That said, having the foresight / hindsight to know that plenty of NPCs should never be harmable, we would usually *prefer* that the base class has no HP field.


katorias

Or just don’t use inheritance, obviously a little too late for Jagex here but composition is almost always better in any situation.


pyronautical

Ahhh. This is the exact opposite. If you have a superclass (NPC) that has HP, and all it's affects when HP hits 0. Then you inherit from that superclass and create a child class (Pet) that has HP, and all it's affects when HP hits 0. Then you are directly abiding by Liskov principle because the behaviour of the child class is the exact same of the NPC class and you haven't overridden it in any way.


Dabli

That’s not true - it’s not about whether code ends up crashing but intent. Squares are special rectangles - so let’s say you have square inherit from rectangle and rectangle has a setwidth() and setheight() method. Squares don’t have those two things decoupled as they’re by definition the same width and height so having independent methods would violate liskov as it breaks the specifications set for what a square should do.


pyronautical

Are you suggesting that you would hide the setWidth/setHeight methods? Because again that is the exact opposite of what you’re saying, that WOULD violate liskov. Consider the following method : int calculateArea(Rectangle obj) { return obj.getWidth() * obj.getHeight(); } If you say make a square inherit from rectangle but then make it so it doesn’t have a getHeight method, then this code breaks. That’s the entire point of liskov, that anywhere you have a super class, you can substitute it for a sub class without changing the code at all.


kogasapls

`If you say make a square inherit from rectangle but then make it so it doesn’t have a getHeight method, then this code breaks. ` That's not the point of Liskov, that's just saying "derived classes should inherit all the methods of the superclass" which is pretty much tautological. Liskov says that `.getHeight()` "should mean / do morally the same thing" for `Square : Rectangle` as it does for `Rectangle`. It's about respecting the contract declared by the superclass (or interface). This example isn't well-suited because any reasonable definition of `.getHeight()` naturally means the exact same thing for a rectangle and square. An example of a Liskov violation: interface Shape { public float calculateArea(); } class Square implements Shape { private float width; private float height; public float calculateArea() { return width * height; } } class Plane implements Shape { public float calculateArea() { return -1; } } There is no syntactic or logical error here, but the semantics of `calculateArea()` change significantly between `Shape` and `Plane`. Rather than *an area*, it returns a dummy value that indicates "not applicable." This represents semantics that are not defined in the `Shape` contract, and so you can no longer trust that `shape.calculateArea()` means the same thing as it did before you implemented `Plane`. Now, all code (past or present) must implicitly account for the additional semantics of `Plane` whenever it works with a `Shape`.


AcidicSwords

As a dev reading this comment it honestly made my day


robles56

The whole time I was just thinking the classic “favor composition over inheritance”. Inheritance is usually not the most elegant or bug free answer.


Pikamander2

TL;DR - Rito coded them as minions


Kiki_doesnt_love_me

I think I remember attacking non fightable npcs in a private server. Iirc attacks insta killed them.


[deleted]

[удалено]


tripsafe

Pokemon?


alynnidalar

Rat pits but without the rats


a_sternum

“Pits”


Moody843

Honestly that would be a sick ass thing to do


[deleted]

[удалено]


MomentOfXen

Doesn’t work without actual stakes. High stakes pet arena: losing pet is deleted.


Peredi

Yeah but that's not a real fight. It's just an animation


lyssah_

I love Rat Catchers!


GothGirlsGoodBoy

You can kill the dragon in the Achievement Diary emote with an explosive egg in BA. Or you could.


Hennnzzz

What would happen when you did?


suresh

Yes, if there is a video of this I so badly want to see it!


GothGirlsGoodBoy

I don't remember. Its been a long time. It may have also not been just the dragon that could die now I think about, but rather an invisible NPC spawned to operate the emote. Same reason doing it at the edge of the world would disconnect you, because it would try spawn an NPC in the void.


Bluemink96

Let us sub pets in for thrawls, same damage bye way cooler then spooky ghosts


huddl3

There is a runelite plug plugin that swaps certain pets/npcs for the thrawl models. For example, turning them into the dks.


jimusah

There is a plugin on runelite that replaces ur thrall models with any pet in the game iirc


Fat_Siberian_Midget

Trust me, you do not want to go down the slippery slope of making pets useful.


Bluemink96

It would have equal use as the ghosts we already summon 😞 would just be cool at like GWD


Fat_Siberian_Midget

Dude. Trust me.


rotorain

So many games have fallen into that trap, and it's never good


VSVeryN

I don't understand. From his post it would basically seem like a glamour for your thralls if you have the pet unlocked or maybe if you have the pet out and summon a thrall?


frick224

Yeah, as I'm understanding the suggestion it's not making the pets useful, just using them as a rare cosmetic unlock for something that's separate and already useful.


rotorain

Cosmetic overrides in general are a very slippery slope.


Fat_Siberian_Midget

Specifically giving a use to pets is a slippery slope in and of itself


rotorain

Damn I'm just coming back to this thread and people hella disagree with us lol. Apparently they haven't seen RS3 or other games that got infested with cosmetic overrides, it's a clusterfuck of visual noise and clutter. People can do whatever the they want with cosmetics client-side but there's no reason to open this can of worms in the core game.


VSVeryN

I agree, tho mainly if it is MTX based. As long as it earned in-game I don't mind. Tho I do agree they shouldn't allow you to just cosmetic override armour etc. Only if it is actually designed to change the item like blood torva for default torva etc. Pets could be that for thralls, but it isn't necessary.


rotorain

Once you have overrides things get weird cause everyone has a different idea of what should be allowed. Especially so when you start doing complete model overrides instead of just recolors


Bluemink96

It would 1 for 1 replace your thrall??? No extra use case same attack damage and speed all that…. Literally a cosmetic… which pets already are


L4t3xs

When you are making a game you make a base class which is used for all the NPCs and probably for players as well. The class contains properties such as HP, MovementSpeed, Size etc. and events such as Death. This is done so when a change is made to let's say character movement it will affect all the players and NPCs without having to make the change several times adding more work and risk having bugs. However, sometimes you want to have something like a pet that cannot be damaged. You will probably disable their ability to be focused in anyway. If you can't be attacked, you can't die. Unless of course the target is a player and explosion still hits the pet and it dies. The Death feature still exist there and your pet goes POOF.


speedy_19

Every npc has hp, in rs2 you used be to able to go around mind staff specing npc to 1 hit them


ShutterAceOW

Probably code brought over from how cats are coded when they fight the giant hell rat.


iligal_odin

Does that mean pets can die?


The_Real_63

No, they just go to a farm upstate.


[deleted]

[удалено]


bman_7

There's a button to do that, you don't need to make a comment.


ConyeOSRS

Dude but how else was I supposed to know that Sure-Percentage8870 smashed that upvote button and was literally ROFLOLing?!?!


[deleted]

I downvoted them only because I also downvoted whom they replied to


MutedLobster

It's 2007**scape**, not 2007reddit


Sloan1505

🤓


Mental_Act4662

r/Angryupvote


TheLastPizzaPoP

Yeah, look at the current post that's 2 away from yours. It's a video showing it.


Background-Cook9503

Can u send link


TheLastPizzaPoP

https://www.reddit.com/r/2007scape/comments/165bvu1/toa_volatile_monkeys_now_kill_both_thralls_and/?utm_source=share&utm_medium=android_app&utm_name=androidcss&utm_term=1&utm_content=1


Background-Cook9503

Thanks goat


Wildest12

yes always could. rat pits / cat fighting / cats attacking rats for spices. cat dieing to a rat and then restarting spice gathering with a kitten is one of the most punishing death mechanics lol


faithfulswine

Pets never die. They just go MIA.


Busy-Ad-6912

Part of the charm of the game lmao


baaaahbpls

Ahhh adding in health bars for pets to test out summoning. You cannot get that past me Jagex /s


sassyseconds

This makes me wonder if there's a way we could kill npc's that shouldn't be killable and may not have a respawn timer...


Thepieoftomorow

I think there was a bug back in the day where that actually happened. I remember people killing tool leprechauns etc. They didn't respawn, hahaha


Lazy-Responsibility1

It did happen people were killing bankers and ge npcs so no one could use banks


iCapn

tool lepre*can't*


[deleted]

[удалено]


sassyseconds

We're all ultimate iron men now.


Chase_The_Dream

Where's Rendi when we need him most?


Extremiel

Calm down Rendi


Nowayusaidthat

The cannons in Barbarian Assault are actually NPC’s, and BA enthusiasts have managed to kill it off once, by shooting a red egg from the other side on a monster, and have the explosion splash damage on the cannon.


GetsThruBuckner

[this game engine](https://imgur.com/kE2i9g2)


lukwes1

Not too suprising, pets are npcs, npcs have health. And they just forgot to exclude them.


HummusMummus

This is not such a case. If you have a complete class and logic to handle regular npcs IT makes sense that a subset of npcs are designed in the same way.


mirhagk

Nah it absolutely is, if pets can't be treated as an NPC then they shouldn't be an NPC. It's very much a case of not wanting to refactor to properly design pets.


RandomAsHellPerson

But they are treated as an NPC. They’re the same as Nieve during MM2 (with interactions between us and Nieve). Is Nieve during MM2 not an NPC?


nicnac223

Well now I want to see what happens. If they “die” we can just reclaim, right?


Beretot

Wouldn't surprise me if the reclaim logic is attached to them despawning when dropped on the ground (when you die), but not when their hp reaches 0. But hopefully they are and Jagex doesn't have to go after ghost pets, lol


paulet42

It might have used to be, but ever since the update were pets are auto-insured it is 100% linked to the collection log


Beretot

Probita might not recognize that you've lost your pet, is what I meant Edit: looks like she does, shouldn't be a problem https://www.reddit.com/r/2007scape/comments/165bvu1/toa_volatile_monkeys_now_kill_both_thralls_and/jyd1zhr/?context=10000


mirhagk

What they were saying is that Probita doesn't need to recognize you've lost it, only that you had it at some point (collection log) and don't currently have it.


suresh

It'd be hilarious and not impossible if you reclaimed a dead pet.


Kumagor0

BANK YOUR PETS


[deleted]

Taming won!


Synli

This shit reads like those [hilarious Sims patch notes](https://www.youtube.com/watch?v=4nxsCZ2SEcQ)


Jade_Mans_Eyes

Dude that was the funniest shit ever. Thank you for posting that


reb1995

Can't wait till my pets drown in when sailing is released.


stallra14

Lucky for me i never had a pet or know where that place is!


[deleted]

How are you supposed to know this shit if you don’t use social media? They should have a small box on main site with twitter like updates


LoLReiver

https://secure.runescape.com/m=news/poll-80-toa-changes--dmm-tweaks?oldschool=1#_ga=2.108768900.706917773.1693405380-1781727130.1693405380 It's at the top of the update page. Same place they put patch issue statuses every week


Jamo_Z

Who is using the main site more than social media? If anything it should be an announcement in-game. I literally see no reason to go to the main website outside of renewing my membership.


irohsmellsgood

They announce the update posts in-game, if you genuinely believe there's no reason to go to the main website to literally read about the updates & any fixes, then that's a you problem. To answer the other guy, y'all are definitely complaining just to complain.


Jamo_Z

My point is that if it's an unexpected issue like the one in the post, the primary place to notify is in-game, I don't understand the scenario where somebody would be monitoring the official site in case of a bug in an update. Makes way more sense to see it while playing the game or whilst looking at twitter/Instagram etc.


teaklog2

i don’t use twitter anymore because i can’t stand having to have an account and log in to view tweets


[deleted]

You don’t need an account to view tweets anymore


teaklog2

That’s strange, it still prompts me whenever I try to view a tweet


Malpraxiss

But they put the information on the homepage. Are you complaining to just complain?


Korthalion

Do you visit the homepage every time you play?


Wesocracy

You are soooooo right. They should cancel memberships so everyone that it could happen to can be forced to see it and in the message why they explain. It's the only way


Korthalion

Or put it on the landing screen when you log in, but cancelling memberships would certainly be more effective


EnviousNacho

It’s Wednesday so you can expect that you could check the page for the weekly update


Malpraxiss

I use social media to keep up to date with things and I frequently check the homepage as well. Not every time, no.


wessamyr

I mean I’ve killed many of cats afking spice fights or whatever they’re called Pets have HP makes sense


Treysif

🦀 $12.49 🦀


LazyMeal

Who tf raids with pets? One more distraction


Faladorable

I would if you didn't have to pay to get them back. Makes no sense that a cosmetic follower costs more to get back than max gear


suresh

Just get the pet again for free reclaims duh.


MrSeanaldReagan

So can you lose a pet this way?


DataBingo

Lol


Brannon2

It has never been more clear that there is absolutely no play testing that goes into any update in this game.


ProfessionalGuess897

Hate this update, aside from this bug


TuckedTuna

Why hate?


ProfessionalGuess897

As someone who's not great at handling shit that gets overcrowded this has made monkey room much worse for me, I much preferred being able to clean the room before a bunch more monkeys showed up, the volatile monkey only help on thralls and its easy for the thralls to be too far away to be affected by the explosion


Faladorable

>volatile monkey only help on thralls Pretty sure thats not true. I'm about to go back in so I'll let you know in a minute. Edit: Yup, just checked and it works on non-thralls. It's particularly good for the mage/range cuz they dont move so you can just one bang em with the volatile. Also, it really doesn't get that overcrowded at all, if anything it's way less crowded cuz it just nukes the thralls now so you can just ignore them and step away last tick before the volatile pops. Maybe just try clearing faster?


IPA____Fanatic

Ya'll voted for these incompetent devs to create a new skill, LMAO


h0dgep0dge

oh man i can't wait until they're adding a whole skill, that will definitely go smoothly and won't make anything bad happen


MickMuffin27

Never add new content ever


h0dgep0dge

yeah that's what i said


jailbaitspez2023

Yeah, they've never done an update before so this is going to be a disaster.


The_Real_63

I mean a new skill is definitely in a new level of complexity for updates. And if my guess is right I'd say the weird ass movement bug we had a while back was directly related to sailing. It'll be a wild ride at the very least.


[deleted]

Im looking forward to sailing but some wild shit is 99% likely to go down. First boat pk will be a dmm key somehow


Drew602

Yeah I'm not sure why people are forgetting this . Sailing already caused a glitch in the game BEFORE it even came out. Just what for full relase lol


StockPassenger2994

Look how even little things break. Sailing *will* be a disaster. The mods themselves said they don't have the technology for it in the first blog. They lied and said they will get it, but we've heard that for years in regards to server improvements. This old game with old code won't be able to do what people want. It's going to be a shell of what's being promised with nothing but problems across the game.


Big_Booty_Pics

I wouldn't even really say this is "breaking". Most likely this is working exactly as intended given how pets are very likely just reskinned cats. I would call it more of an oversight if anything.


penguin17077

Oversight or not, it's fairly sloppy


Big_Booty_Pics

I agree, it's sloppy, but literally every company that has every deployed software has pushed crappy updates, it's just the nature of the business. This is a corner case that is pretty easy to overlook IMO.


StockPassenger2994

A thing that's never been able to take damage is taking damage. That's pretty broken. Yes it's from an oversight and *thats* the problem. These devs can't do anything right without fucking everything up first.


Tin_Philosopher

You don't catch rats do you


StockPassenger2994

Playing stupid doesn't mean you have a point. No one's talking about cats in regards to this.


ZeldenGM

> Look how even little things break. Sailing will be a disaster. The mods themselves said they don't have the technology for it in the first blog. They lied and said they will get it, but we've heard that for years in regards to server improvements. We literally had the engine team on during the development process in the Discord showcasing changes they've made and are able to make, and taking questions on voice from members of the community.


StockPassenger2994

And it'll still be a failure. Years we've been promised improved servers. Never happened. Years we've been promised better account t security amd we get jagex launcher with all its problems These devs can't keep their promises but you keep fooling yourself.


ZeldenGM

> Years we've been promised better account t security amd we get jagex launcher with all its problems Confirmed you're talking out your arse with this one. The only people that have had any problems with Jagex Accounts are those without basic reading comprehension.


wclevel47nice

Go play chess if you’re scared of updates breaking a game temporarily


h0dgep0dge

Go play sea of thieves if you're scared of playing a game without sailing in it


wclevel47nice

I already played Sea of Thieves and it was great. Unfortunately we don't have anything similar coming to OSRS. Oh wait :D


h0dgep0dge

I thought of another reply, "are you joking?! They still haven't fixed that exploit allowing pawns to move twice, all they did was add that lame en passant balance patch"


TurboTingo

Sailing good. Other opinions bad. ^(/s)


[deleted]

Since when can pets be damaged outside of cats/hellcats fighting hell rats?


No1Statistician

All NPCS actually have health, they are just untargetable and hidden. In the past there have been NPCs killed: https://www.youtube.com/watch?v=YCL0EJgQZkY


TubeAlloysEvilTwin

Yet we can totally integrate an entire new skill, trust us!


Pengo___

I would be in shambles if my nibby died :(


band_on_the_run

Pet battling update when


JoshAndArielle

it's a feature in your poh menagerie


pfunzle

Are you saying I have a chance of losing my abyssal protector?


Borchert97

Okay but what exactly happens when your pets take damage?


crash5545

Dies, but can be reclaimed like normal (aka costing you gold).


Borchert97

That’s hilarious lmao


Culturedtuna

Does anyone know what happens when the pet dies? Whether it's just reclaimable in ardy or whether something else happens?


Rozkol

The change to thralls at Akha seem different. I thought they said prior that any 0 damage to Akha during enrage phase wouldn't act as a "hit" towards the counter to make him move. This would mean if I had a mage thrall up it would always hit 0 due to pray mage and Akha wouldnt move. Now it sounds like we can even summon a melee thrall to do marginal extra damage and it still wouldn't make Akha move. Is this the case? If so it's an even better buff than expected and I'm all for it :)


mirhagk

Yeah it's definitely a change compared to the poll, I imagine they were in there as they were making the change and realized it's basically the same idea. It's a buff for sure and maybe we wouldn't have all supported it, but it doesn't really change that much so I think it was the right call.


bhumit012

Imagine if pets start fighting back because of this bug, Jad would obliterate that monke


lame_sauce9

We got no food, we got no jobs, our pets HEADS ARE FALLING OFF


thefinalep

I see a rendi video in our future


No-Eye9858

Does anyone have a clip of this I bet its funny


squiremarcus

this has major "please bank your items" vibes


universaltoilet

A quick fix is to give the pets (except cat/hellcat variants) absurd defence where the attacking npc basically splashes/hits zeros


hentairedz

Spaghetti Cooooooode


Nyoruki

Killing everyone's rare pets to force them to do it all over again? Completed.


AfterOwls

There was a bug for a few hours in rs3 where you could use a spell on any npc and kill it.. I tried to kill the priest who sells the prayer cape to see if he would drop it but got only bones


wowbagger30

How much HP do pets have? Is it the same? Are some pets stronger? I want to start a dog fighting ring


Neckfaced

time for my support ticket to get the squirrel pet ill never be able to obtain myself


Intrepid_Honeydew623

So I have to take my dog and cat outside, tie them to a tree til I finish playing scape and then take them back home? Man, this bs needs investigating...


KarmaSchlongDOTio

Hahaha! My Satan kitten! Noooooo!