Mass Combat: serve <target>

Started by The7DeadlyVenomz, July 30, 2013, 09:18:51 PM

July 30, 2013, 09:18:51 PM Last Edit: August 06, 2013, 08:35:18 PM by The7DeadlyVenomz
Thinking about things, and assuming that our current combat code dealing with 1vs1 is good (simple, but good), the best way to create changes is to add simple checks.

I had this huge, elaborate plan, but I realized that it didn't make sense without completely revamping the entire code. So what can we do to change things a bit and yet keep it all very simple and bare-bones, and ultimately easy to code and most likely to be implemented?

Well, the idea about dispersing attacks based on following was pretty good, and the idea about displaying guards was an inspiration as well. X is against hard caps, and while I am not, I do indeed see how it could be abused at low numbers. At high numbers, I don't think it changes much. For the sake of argument, though, I think you could do caps based on race, which would tend to be accurate, and much simpler to do than checking size and weight.

We'll avoid caps, here, though.

I wouldn't want to use the follow command, because it serves a purpose already that I don't think needs to be changed or complicated. I'd copy it, to some extent, though. Let's call the command serve.


Serve
(Combat)

The serve command allows your character to actively engage in a combat formation headed by the target, making it so that you follow them and engage in combat under their guidance. When the character that your character is serving under engages in combat with a target who is part of another formation, you may assist your formation leader simply by typing 'assist'. If the leader is not in combat, 'assist' will default to the first person in the formation order who is being attacked.

If you are serving under someone else, and you initiate combat with a target not involved in combat with you or others in your formation, you will automatically leave the formation. If anyone in your formation, including your leader, initiates combat with a target which is not in a formation, the attacker will leave the formation.

Initial attacks made by members of formation A which are meant to target someone in formation B have a chance to initiate combat with a different member of formation B. It is difficult to gang up on somebody in a formation, and the lower your offensive skill is, the harder it is to 'change opponent <target> while facing a formation. Formation vs. formation conflict will attempt to disperse initial attacks so that each member faces a different attacker, depending on the numbers in each formation.

If you are not part of a formation and you attack someone who is in a formation, the target will remain in formation. You may or may not reach your target, depending on your stealthy skills and the location of the target in the formation. The target's formation mates may assist him as though you were in a formation.

Ranged attacks upon a target in a formation have a chance to hit another member of that formation. This chance is reduced according to the skill of the attacker.

You may use all of the various combative skills while in a formation.

In a formation, the leader will have the highest probability of being attacked, with each successive follower having a reduced chance of being attacked. The leader of a formation may change the order those serving under them.

Use "serve me" or "serve self" to stop serving another character and leave the formation you are in. Use "unhitch <target> in order to remove somebody from a formation you are leading. Use "serve change order <target> <target> ..." to organize a formation that you are leading.

Syntax:
serve <character name>

Example(s):
> serve azroen

> serve self

> serve order <target> <target> ...

Notes:
The serve command makes you follow blindly. Thus, if the person your character is following walks off a cliff, you follow them off. The character's player who is being served receives a message that your character is serving them. You will continue to serve someone until you flee, quit, or explicitly serve yourself (serve self).

Offensively, formations are most useful when facing other formations. They also have great defensive functions. You can not run or sneak when you are in a formation. You may be magically hidden, but you may not be mundanely hidden. Formations are close, semi-precise groupings of people. The proceeding limitations reflect this.

You may not have more than four people serving under you. You may not serve someone who is already serving someone else.

You can not be rescued by somebody who is not in your formation.

See Also:
shadow, unhitch, follow


Not included in this pseudo help file are a couple of other features. One, if you use combat brief when you are in a formation, you will only notice combat messages related to your formation. You will still see messages pertianing to other entities in the room like deaths, emotes, and other world messages as normal. Two, when looking at the room, you would see those in a formation as follows:

The massive Tor Warlord stands here.
-- a Tor Red Scorpion stands here in formation.
-- a Tor Red Scorpion stands here in formation.
-- a Tor Silver Scorpion stands here in formation.
-- a hulking, ghost-white gortok stands here in formation
.

The final two changes I would want to see is a max number of attacks in one round on one target. This would apply to both NPCs and PCs. There would be no limit on the number of people that could attack you, nor would there be a limit on how many formations that could attack you. But there would be a limit on the number of attacks unleashed on you per round.

I think a good number would be 5. I'm not positive about how attack speed is measured currently, but however that is, use that measurement to decide where attacks fall. In this system, a disarm attempt, a bash attempt, a trample, a throw or archery attack, or a kick attempt counts as an attack.

This does two things. First, the more people attacking a target, the slower the initial attacker can attack. This reflects the way that multiple people eat up space and force movement and delays. Secondly, it creates a soft cap that can change, but never goes above a fairly large number. For instance, a cap of 5 attacks per round could be as many as 10 strikes by those who use two weapons, or 5 attacks by those who only use one weapon, or any number in between.

Finally, the number of attacks you receive when fleeing would likewise be limited by these constrictions.
Wynning since October 25, 2008.

Quote from: Ami on November 23, 2010, 03:40:39 PM
>craft newbie into good player

You accidentally snap newbie into useless pieces.


Discord:The7DeadlyVenomz#3870

I can't really find anything to argue with it, other than it would be a pain to code.

I would add there should be a short delay on auto-assist, in case Joe Templar decides to attack someone your character wouldn't engage, giving you time to stop.

I would also add a movement delay based on the number of people serving in formation. Even making it impossible to 'run' without auto-disbanding the formation.
Someone says, out of character:
     "Sorry, was a wolf outside, had to warn someone."

Quote from: Wastrel on July 05, 2013, 04:51:17 AMBUT NEERRRR IM A STEALTHY ASSASSIN HEMOTING. BUTBUTBUTBUTBUT. Shut. Up.

Quote from: Vwest on July 30, 2013, 10:16:10 PM
Even making it impossible to 'run' without auto-disbanding the formation.

While working on this PIA coding, we could add two new formation movement speeds: "march" and "doubletime".
"I have seen him show most of the attributes one expects of a noble: courtesy, kindness, and honor.  I would also say he is one of the most bloodthirsty bastards I have ever met."

Other than the bit pertaining to choosing who'll be attacked, and the bit about changing the order of your formation, there isn't any really hard coding involved with the new command. Bits about limiting the number of attacks shouldn't be too hard to code either. Choosing who'll attack could be a bitch to do.

I completely forgot, but yes, if you are in formation, running would disband the formation. This is to reflect masses of people moving together. It also keeps the formation from being able to gank single PCs easily. If you want to run down someone, you leave or dissolve your formation and light out after them. Formations are created to reflect the concept of mass combat and tactics within formations.

And I wouldn't want to add speeds for formations.
Wynning since October 25, 2008.

Quote from: Ami on November 23, 2010, 03:40:39 PM
>craft newbie into good player

You accidentally snap newbie into useless pieces.


Discord:The7DeadlyVenomz#3870

This is nice. I like the idea but not too sure if its something that can be coded or not. Or if it can how difficult it would be.
I am unable to respond to PMs sent on the GDB. If you want to send me something, please send it to my email.

A whole stack of attacks all landing at once sounds a little over the top. Landing hits at the same time would require a good eye, and knowledge of a leader's tendencies.

So instead, what if there was a delay to serving based on skill (hint) before your PC is able to land a strike where your leader does?

Under certain circumstances, NPCs seem to be coded to do this, am I right? By auto-assisting?

I don't have a problem with delaying the attacks.
Wynning since October 25, 2008.

Quote from: Ami on November 23, 2010, 03:40:39 PM
>craft newbie into good player

You accidentally snap newbie into useless pieces.


Discord:The7DeadlyVenomz#3870

If the Formation Leader types kill, does everyone receive the kill lag? If it just redirects to assist, that'd get around the problem, I guess.
Quote from: IAmJacksOpinion on May 20, 2013, 11:16:52 PM
Masks are the Armageddon equivalent of Ed Hardy shirts.

The more I think about it, the more I like this idea.
Someone says, out of character:
     "Sorry, was a wolf outside, had to warn someone."

Quote from: Wastrel on July 05, 2013, 04:51:17 AMBUT NEERRRR IM A STEALTHY ASSASSIN HEMOTING. BUTBUTBUTBUTBUT. Shut. Up.

I think the general concept is well-intended, but might not have the intended results. I'd hate to see something implemented that makes it -easier- for mistaken targets to get ganked. It's hard enough when you attack your own brown-shelled inix, to notice, and then stop attacking it. It'd be a damned shame to not only attack your own mount, but for 4 of your nearest and dearest killing it just because you hit the wrong command - while in the meantime, the brown-shelled mantis is destroying your second-in-command. Not that this can't be fixed by using the keyword mantis - but you can't guarantee that players will all conform with the standard (since obviously - they don't, or this wouldn't ever happen, which, it does).
Talia said: Notice to all: Do not mess with Lizzie's GDB. She will cut you.
Delirium said: Notice to all: do not mess with Lizzie's soap. She will cut you.

without some kind of limitation, the max amount of followers could be easily bypassed by having others serve under one of your followers  :P

Quote from: Lizzie on July 31, 2013, 07:43:17 AM
I think the general concept is well-intended, but might not have the intended results. I'd hate to see something implemented that makes it -easier- for mistaken targets to get ganked. It's hard enough when you attack your own brown-shelled inix, to notice, and then stop attacking it. It'd be a damned shame to not only attack your own mount, but for 4 of your nearest and dearest killing it just because you hit the wrong command - while in the meantime, the brown-shelled mantis is destroying your second-in-command. Not that this can't be fixed by using the keyword mantis - but you can't guarantee that players will all conform with the standard (since obviously - they don't, or this wouldn't ever happen, which, it does).


Lizzie,

This is an interesting point. One thing that I have always hated about Armageddon. In real life you would never accidentally attack your own mount. Its frustrating that there isn't some kind of safe guard against this in Armageddon. Like for instance something along these lines:

The brown-shelled inix is hitched to you.

The brown-shelled mantis enters from the west

>kill brown-shelled
Game Response: brown-shelled inix is hitched to you and friendly are you sure you want to kill it? (with some sort of Yes or No option to continue)

The only reason I could see it not doing this is if you are under some affect that just makes you crazily do things. However, under normal circumstances this should never be allowed to happen. Just my thought on this.
I am unable to respond to PMs sent on the GDB. If you want to send me something, please send it to my email.

This + formations attacking other formations = you attacking a random person in that formation.

Quote from: Alkendor on July 31, 2013, 09:13:23 PM
This + formations attacking other formations = you attacking a random person in that formation.

Sounds cool. Also, this opens up more features in the future where one formation smashes into the other.
Quote from: Morrolan on July 16, 2013, 01:43:41 AM
And there was some dwarf smoking spice, and I thought that was so scandalous because I'd only been playing in 'nak.


Quote from: janeshephard on July 31, 2013, 09:21:19 PM
Quote from: Alkendor on July 31, 2013, 09:13:23 PM
This + formations attacking other formations = you attacking a random person in that formation.

Sounds cool. Also, this opens up more features in the future where one formation smashes into the other.

Fredd-
i love being a nobles health points

Reposting this post of mine from a 2006 thread on unit combat (prompted by Halaster) that followed a different HRPT:

http://gdb.armageddon.org/index.php/topic,19744.0.html

Quote from: Ktavialt on June 16, 2006, 02:54:53 PM
I just messed my pants seeing all this. I'll take a stab at the unit stuff and my thoughts on it... this'll be kind of long as I think it out.

-- 1 --
First off, the general look of things. I would make it so any four PC's or soldier NPC's could form a unit, even amongst each other, so it looks something like this:
A small, four-man unit of dun-clad soldiers is here.
- The tall, muscular man is here amongst the unit of dun-clad soldiers.

-- 2 --
Second, the way combat is handled between units fighting with no PCs. I think it should be pretty simple looking, basically pitting a certain skill of
the unit against other skills of the unit, the skill of the unit being calculated at the time of formation, then have combat look something like this:
A small, four-man unit of dun-clad soldiers is here.
A small, four-man unit of brown, militia-cloaked soldiers is here.
---
A small, four-man unit of dun-clad soldiers attacks a small, four-man unit of brown, militia-cloaked soldiers!
In a clash of weapons and shields, the unit of dun-clad soldiers and unit of brown, militia-cloaked soldiers collide, causing wounds on both sides of the fray.

And, if you want to get fancy, which I think should happen once the basics are done, add certain things that raises or lowers the combat skill of the
unit, something like this:
In a clash of weapons and shields, the unit of dun-clad soldiers and unit of brown, militia-cloaked soldiers collide, causing wounds on both sides of the fray.
During the melee, a weapon of a member of of the unit of dun-clad soldiers goes flying!

-- 3 --
Third, combat between units that contain PCs.  It should probably be handled like in the initial post where one or more actual NPCs are pulled out of the unit, lowering the unit's fighting ability, so the two can fight against one another. If the units match each other in number then only one NPC is pulled out to fight the other, otherwise a random chance that more than one NPC is pulled out based upon how many more the other unit has. It may look something like this:
A small, four-man unit of sunburst-cloaked soldiers is here.
A small, four-man unit of black, military cloaked soldiers is here.
- The tall, muscular man is here amongst the unit of black, military cloaked soldiers.
---
A small, four-man unit of sunburst-cloaked soldiers attacks a small, four-man unit of black, military-cloaked soldiers!
As the units collide, a tall figure in a hooded, sunburst-designed greatcloak engages the tall, muscular man!
A tall figure in a hooded, sunburst-designed greatcloak parries the tall, muscular man's attack.
In a clash of weapons and shields, the unit of sunburst-cloaked soldiers and unit of black, military-cloaked soldiers collide, causing wounds on both sides of the fray.

Where PCs exist in both units they should have a random chance that the PCs combat one another, though I wouldn't think they should -always- end up going toe to toe with one another.

If you want to get fancy, and probably down the line once the basics of the unit fighting code is established, with unit orders a leader could order his unit to have more members strike a selected foe, with a chance that the other side negates the order:
A medium, seven-man unit of sunburst-cloaked soldiers is here.
- The templar wearing a red silk hood is here amongst the unit.
A medium, seven-man unit of black, military cloaked soldiers is here.
- The hooded, blue-robed templar is here amongst the unit.
---
The hooded, blue-robed templar shouts out an order as she gestures
towards the templar wearing a red silk hood.
A medium, seven-man unit of black, military-cloaked attacks a medium, seven-man unit of sunburst-cloaked soldiers soldiers!
As the units collide, a figure in a black, military dustcloak engages the templar wearing a red silk hood!
As the units collide, a figure in a black, military dustcloak engages the templar wearing a red silk hood!
A figure in a black, military dustcloak attempts to engage the templar wearing a red silk hood, but is repelled and is forced to engage another foe amongst his unit.

-- 4 --
Fourth, as to deaths in the unit, there should be a certain hit point level for the unit where a death may and must occur, and the unit will slowly dwindle in size based on that. Something like:
A medium, seven-man unit of sunburst-cloaked soldiers is here.
- The templar wearing a red silk hood is here amongst the unit.
A medium, seven-man unit of black, military cloaked soldiers is here.
- The hooded, blue-robed templar is here amongst the unit.
---
The hooded, blue-robed templar shouts out an order as she gestures towards a medium, seven-man unit of sunburst-cloaked soldiers.
A medium, seven-man unit of black, military-cloaked attacks a medium, seven-man unit of sunburst-cloaked soldiers soldiers!
In a clash of weapons and shields, the unit of sunburst-cloaked soldiers and unit of black, military-cloaked soldiers collide, causing wounds on both sides of the fray.

A few seconds pass...
In a clash of weapons and shields, the unit of sunburst-cloaked soldiers and unit of black, military-cloaked soldiers collide, causing wounds on both sides of the fray.
During the melee, the figure in a black, military dustcloak cries out in pain.
---
A medium, seven-man unit of sunburst-cloaked soldiers is here, fighting a medium, six-man unit of black, military cloaked soldiers.
- The templar wearing a red silk hood is here amongst the unit.
A medium, six-man unit of black, military cloaked soldiers is here, fighting a medium, seven-man unit of sunburst-cloaked soldiers.
- The hooded, blue-robed templar is here amongst the unit.

-- 5 --
Fifth, beneficial or harmful magicks.  Well, I'm sure at least one side definitely will not use magick, and the others I doubt too, but as far as harmful, if its some sort of area spell then the spell would have to be specifically coded to harm the unit, if its not an area spell then drag out an NPC of the unit to fight the magicker.  That could be tricky though.

Also, I didn't really mention this before, but I feel that a unit could attack a lone person.  That lone person who gets attacked should have joined a unit or had a better wilderness hide :)

Though, with the tiny about of coding knowledge I have I know this will be one of those bug-ridden additions, but I think it will be worth its trouble trying to tighten all the nuts and bolts after it is done.

- Ktavialt

Just FYI (about my idea I quoted above) from a coding perspective (with as much as I know with coding), this is what I think would have to occur.  I'm not saying its easy, but it doesn't seem incredibly difficult:

- Units would be NPCs with a Unit flag with hit points and damage potential/strength expected from any "unit" i.e. collection of soldiers, i.e. any unit would be stronger and probably obliterate most PCs (excepting maybe a ridiculously skilled veteran fighting a small, four person unit, and even then...).

- Units can still attack PCs and obliterate them as they do currently.  No different code would be necessary for this.

- Add code to make it so units cannot target PCs which are part of another unit.  They have to attack the unit itself.  This is why you join a unit as a PC :)

- When Units attack other Units, that is when the bulk of the new code would actually kick in.  This would require some additional variables for "unit" NPCs, such as the "unit size" "unit strength" (i.e. half giants versus humans, elite versus regular) and "max HP" which would be used to calculate various things such as what HP level causes the unit to lose numbers.

- Add code as shown in my post which makes unit to unit combat, when the unit does not have any PCs, calculate differently and adjust the size of the unit (including long/short descriptions) as deaths within the unit occur, dependent upon the unit size and max hp (which relates to when the unit's size diminishes).

- Add code for what happens when units square off with each other and a PC is in the unit.  This would be either forcing the face-off between the PC and a PC with the opposing unit, or a loaded NPC in the opposing unit, or if there is a disparity in the size of the unit, perhaps two NPCs would be loaded against the PC.

- Add code for PCs (PC templars, kuraci sergeants, etc.) to control (and be part of) a unit.  The control probably already exists.

- Create up a standard NPC soldier for each type of unit you have.  The legion would have their common units, the allanaki militia would have theirs, etc.  Different units may exist, such as half-giant units.

- Add code to cause the death of an NPC soldier loaded to fight the PC to reduce the HP based upon its death and, therefore, reduce the unit size.  This allows PCs to cut down the other units, member by member.

- Add code which states that if the PC flees, the NPC soldier dissolves, rejoining the unit essentially.

That would be the basics.  There is probably other code that could occur to make it even more interesting, but this is the core code I think which would be necessary to do this.

August 02, 2013, 04:39:35 AM #17 Last Edit: August 02, 2013, 04:44:31 AM by IssacF
Quote from: Lizzie on July 31, 2013, 07:43:17 AM
I think the general concept is well-intended, but might not have the intended results. I'd hate to see something implemented that makes it -easier- for mistaken targets to get ganked. It's hard enough when you attack your own brown-shelled inix, to notice, and then stop attacking it. It'd be a damned shame to not only attack your own mount, but for 4 of your nearest and dearest killing it just because you hit the wrong command - while in the meantime, the brown-shelled mantis is destroying your second-in-command. Not that this can't be fixed by using the keyword mantis - but you can't guarantee that players will all conform with the standard (since obviously - they don't, or this wouldn't ever happen, which, it does).


@Lizzie

I can see what you mean. Perhaps coded it so whenever the leader switches target after a delay everyone switches to the new target? Or like someone else posted: treat the mount as friendly.

@Everyone else

I like the idea and it won't be too hard to code but might be troublesome to implement. The problem is not usually the code but rather how the code interacts with the rest of the coding already implemented. What seems simple can end up breaking the game with bugs.

Usually when you are in a formation and attack one person, it takes time to manuever into place. There is also the problem of space available for you to get close to the target as well as being careful not to attack or hurt an ally. So I like the attack limitation because it makes sense.

I don't think you should be able to initiate combat with anyone following you without a yes or no check. That includes mounts and people.
Wynning since October 25, 2008.

Quote from: Ami on November 23, 2010, 03:40:39 PM
>craft newbie into good player

You accidentally snap newbie into useless pieces.


Discord:The7DeadlyVenomz#3870

Quote from: The7DeadlyVenomz on August 02, 2013, 10:47:02 AM
I don't think you should be able to initiate combat with anyone following you without a yes or no check. That includes mounts and people.

I agree with this 100%.
I am unable to respond to PMs sent on the GDB. If you want to send me something, please send it to my email.

Quote from: The7DeadlyVenomz on August 02, 2013, 10:47:02 AM
I don't think you should be able to initiate combat with anyone following you without a yes or no check. That includes mounts and people.

Won't that be a bit risky in the sense of mass combat were one is attemptin to kill the opposition as swiftly as they can? Imagine having an enemy bearing down on your neck and you attempt to kill.

Are you sure you want to kill this target?

YES DAMNIT YES HURRY UP!

Not really. It would be much less risky than trying to attack that army bearing down on you and accidentally helping them by hitting your own follower/leader/mount.
Wynning since October 25, 2008.

Quote from: Ami on November 23, 2010, 03:40:39 PM
>craft newbie into good player

You accidentally snap newbie into useless pieces.


Discord:The7DeadlyVenomz#3870

You'd have to take into account effects like Mul Rage but otherwise, yeah, it would help with mass combat.  Also help with those people with unfortunate keywords and carru cloaks.

Quote from: The7DeadlyVenomz on August 02, 2013, 12:33:10 PM
Not really. It would be much less risky than trying to attack that army bearing down on you and accidentally helping them by hitting your own follower/leader/mount.

Hmm but wouldn't the assist you set up with Serve only make you attack what the leader/point is attacking? Maybe have an 'ally' setup for people and mounts inside the formation? So anyone in the formation if you attack by mistake gives you:

So-so is in your formation and allied, are you certain you wish to proceed?

Yeah, that was the whole idea. It wouldn't ask you if you wanted to attack everybody, only those you are serving or are being served by, those following you, or those hitched to you.
Wynning since October 25, 2008.

Quote from: Ami on November 23, 2010, 03:40:39 PM
>craft newbie into good player

You accidentally snap newbie into useless pieces.


Discord:The7DeadlyVenomz#3870