Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CF: combat proposal (long)





	Hi all,

	I have been putting together some ideas about the combat 
	system which I would like to share for critical discussion. 
	Some of this stuff I have already mentioned in earlier email,
	so ardent readers of this list should recognize many of these
	ideas. The framework which I am presenting below, is however,
	very new.  

	As always, changes should be implemented with the idea of 
	'fun' first, realism second.
						-b.t.

  	OUTLINE >>>
	-----------

	0. Proposal overview
	I. Weapon attack modes
	  a. damage to armour/weapons
	  b. how to 'invoke' special attacks
	  c. immunities.
	II. Fatigue and Bleeding. 
	III. Extended weapons.
	IV. Appendum - other related stuff 
	  a. Armour & Weapon repair
	  b. Changes to skills, 2 new skills. 
	  c. Changes to spells and new spell ideas
	

	0. Proposal overview

	These changes are motivated by the rather 1-dimensional quality
	of fighter combat in CF. Basically, you run into a monster to
	hit it then you stand there as long as possible hitting it until
	either you or the monster is dead. In contrast, things are a 
	bit more exciting when either you or the monster is throwing 
	spells. Also, spellcasters (by the nature of many, many spells)
	have many more 'options' for tackling 'problems'. 

	What to do?? Is it possible to 'jazz' up the fighter and his 
	options? Hopefully! In this proposal, I suggest ways to modify 
	the combat system so that new abilities and restrictions on 
	combat come into being. In general, things wont change alot, if 
	you run into a monster with a wielded weapon, you will make an 
	attack *exactly* the same as you do now, if you are hit by a monster, 
	you take damage, etc..

	Basically, changes revolve about 3 main things which can be used
	by both players and monsters: new weapon attack modes (occur when 
	weapons are used in a 'special' way) and their effects, the use 
	of fatigue and bleeding, and a new 'special' extended attack.


	I. Weapon attack modes

	When a creature (player or monster) makes a 'special' attack, 
	the code will examine the weapon (or hth skill) for special
	attack mode flags. If any are found, then a successful
	attack is modified (mostly in terms of the damage caused). 
	Here are some ideas for attack modes ("fat cost"== fatigue
	cost for each use of that attack, see below on fatigue):

	Table 1. Attack modes

	Attack Mode	Fat Cost	Effect 
	-----------	--------	----------------------------
	
	impale		low - none    	1-Double all damage that penetrates 
					armour. Weapon may become stuck with 
					chance based on the total damage 
					inflicted.

	cut		low		1-Attacks cause bleeding to occur
					and Mult all damage that penetrates
					armour by 1 1/3.

	bash		moderate	1-Attacks can damage armour (worn and
					intrinsic, see below).
					2-Can stun some opponents (esp those
					smaller critters w/o helmets!).
					3-Can cause 'knockback'-- makes victim
					move back 1-2 squares.

	chop		moderate	1-Attacks can damage armour (as above).
					2-Mult. all dam that penetrates
					armour by 1 1/2 and can cause bleeding 
					to occur.

	disarm		low		1-may disarm the victim. 

	dig		high		1-used to dig a pit, can't effect
					living creatures.

	Some Notes:

	  a. damage to armour/weapons

	When you make a special attack we need to examine the attacking 
	weapon and the armour being attacked. Choice of armour 
	item will be in order 1) worn shield, or 2) the top armour item in 
	the inventory (that is worn). 

	For most special attacks, REGARDLESS of the SUCCESS of the attack, 
	IF the armour item is immune|protected to ALL of the weapons 
	attacktypes OR the magic of the armour =< magic of weapon then we 
	may damage the weapon.

	Next, for all successful attacks, we determine the effect based on 
	the attack mode and item properties:

	Impale --  If armour exists, item may become stuck with a chance
		   equal to the total damage inflicted. If the weapon is
		   being wielded (ie, its a spear, not an arrow shot from 
		   a bow) then we make ONE test immediately to see if the 
		   weapon may be withdrawn (based on wielder str, level 
		   and the armour rating). Successful withdrawal has a 
		   small chance of damaging the weapon IF the magic of the
		   armour is higher than the weapon magic.

	Cut     -- Nothing beyond initial damage check.

	Bash	-- Damages armour with magic value =< weapon magic. Chance
		   of damaging armour is equal to total damage. If damage
		   occurs then ac value of the armour is reduced by 1 and
		   the armour value is decreased by random value of the 
		   damage that was *stopped* by the armour (ie total damage
		   times the armour percentage). Reduction in the armour
		   value can not exceed the wielders strength (damage)
		   bonus (ie, a Str 20 warrior can't do more than 
		   a 3 pt reduction in the armour value). 

	Chop    -- Damages armour as Bash. 

	Disarm  -- NO initial damage check.

	Dig     -- NO initial damage check.

	If a weapon/armour item accumulates a negative ac/wc "bonus" greater 
	than  its magic bonus, it is destroyed. This means that an ordinary
	small shield (ac 1) is destroyed after accumulating 2 damaging hits 
	(ac first goes to "0", on next hit it then becomes negative) and a 
	+1 small shield can take 3 hits. A piece of armour is also destroyed 
	if its armour value drops below 0. 

	Armour and weapons may be repaired (see below).
	 

	  b. how to 'invoke' special attacks

       Under some attack modes several effects are listed. For a first
       pass at coding this, each effect listed is checked for in every
       attack. Later, we may think of an easy, intuitive way to allow the
       wielder to select the special attack effect.
 
       The player invokes a special attack by readying the melee weapons
       skill, and making a 'ranged' attack. Monsters may make special 
       attacks  based on their intelligence, attack movement, and whether 
       they have the skill_melee_weapons in their inventory.

	  c. immunities.

	Of course, some monsters will be immune to some or all of these
	attack modes, and may be unaffected by bleeding and fatigue. 
	For players, some magical items may make the user immune to some
	attack modes and reduce or (in rare and REALLY powerful items) 
	eliminate the effects of fatigue and/or bleeding.  

	Some player character types may not be affected by bleeding (cf. 
	fireborn and wraith).


	II. Fatigue and Bleeding. 

	Probably, we can implement these each as invisible (applied) 
	archs in the player (or monster) inventory (eg similar to the 
	way 'paralyze', 'confusion' and 'slow' are implemented). Other
	than that, these are quite different. Lets explore each 
	separately:

	  a. fatigue
	
	This is essentially a measure of how much physical exertion 
	a given creature can accomplish. As the amount of fatigue 
	rises, the creature begins to lose vigor (Str) and can accomplish
	less. In game terms, we assign a maximum number of "fatigue points" 
	(fp) that may be accumulated by each creature based on their Str + 
	(physique) experience level (in players) or just assign it to a 
	monster (just like hit points). 

	The amount of Str lost depends on the percentage of fatigue 
	points relative to the maximum number of fp. For very high
	levels of fatigue, our healing rate is effected adversely. 

	Table 2. Effect of accumulated Fatigue:

	current fp/max fp	Str loss	Healing rate 

	     0 - 0.3		none		no effect
	   0.3 - 0.4		10%		no effect 
	   0.4 - 0.5		20%		no effect 
	   0.5 - 0.7		35%		slowed slightly (Con-1) 
	   0.8 - 0.9		50%		slowed (Con-3) 
	   0.9 - 1.0		80%		slowed highly (Con-5) 

	Note, as you lose strength, you will auto-matically be slowed
	down (from the speed calculation in fix_player) thus simulating
	a characters "tiredness".  

	Fatigue is regained at a rate equal to about 2x that of hit
	points. In players this rate is based on their Str and Con
	(in monsters the Str value is used).

	Most probably, it would be nice to have a stat bar in the lower
	window for monitoring the current fatigue level.

	  b. bleeding

	Bleeding refers to the damaging effect of blood loss from open
	wounds. Not all weapons will cause bleeding nor will all creatures
	bleed (ex the undead!, also see above). 

	The rate of bleeding will vary from second to second depending on
	the damage the creature has received and its healing rate.

	From a cutting or chopping attack you receive 1 'level' of bleeding
	for every 10 points of damage from that attack (and a new bleeding
	arch is put into your inventory). 

	Bleeding damage would appear similar to a poison attack, ie you 
	take damage for every time interval, with the interval being smaller 
	as bleeding level is increased. Bleeding slows down as time 
	passes (and amount it slows is dependent on Con rating). 
	
	You can bleed to death. Experience is awarded to the owner of 
	the "wound" that did the killing damage.


	III. Extended weapons.

	Some weapons will allow "extended" attacks into squares not
	adjacent to the wielder. When an extended weapon is wielded, an
	image of it appears in the square that the wielder faces (if a
	wall was there to begin with, you CANT wield the weapon!). 
	Examples of extended weapons include "long spear" and "pole-axe".

	The mechanics of combat and movement for the weapon wielder would be
	changed. Consider this picture of an attack w/ extended weapon:

	   ------- ------- -------	
	  |   0   |       |   9   |	
	  |   |/  | ----> |  (|}  |  
	  |   |   |       |   |   | 
	  |  / \  |       |  / \  | 
	   ------- ------- -------	
	      ^       ^       ^
	      |       |       |
	   wielder  ext.wpn victim

	In the above diagram, an extended weapon wielder attacks a victim.
	Because the "victim" is not adjacent to the wielder, it CAN'T attack
	the wielder of the weapon. The wielder of the weapon IS able to 
	damage the victim. Were the victim to move 1 square NORTH or SOUTH
	no extended attack could occur. If the victim moved 1 square
	to the SOUTH-WEST or NORTH-WEST (ie adjacent to the wielder) it
	could attack the wielder. Note that the victim (in the position
	above) could use a special attack that damages armour (like "chop")
	to damage the extended weapon. It is not possible to use the 
	"disarm" maneuver vs. extended weapon UNLESS you are adjacent to
	the wielder.

	When a extended weapon is wielded, the movement of the wielder
	changes as follows:

	- you will advance squares only in the facing and anti-facing 
	directions (ie either move forward or backward).

	- if you give a command to move in another direction, the code
	will TURN you 1 square as if you were pulled that way (ie you 
	just change your facing, but don't move forward). For example, 
	if the wielder in the above diagram issued the command "north" his 
	weapon (and he!) would point to the north-east. Another "north"
	command would point the weapon to the north. Yet another "north"
	command would advance the weapon and the wielder forward by 1
	square.


	IV. Appendum - other related stuff ====

	  a. Armour & Weapon repair

	We can make an "anvil" in the shops that will repair armour to 
	its original (ie arch->clone.obj) properties. Magical equipment
	can only be repaired by the enchant armour scrolls (but we 
	should probably drop the weight increase effect for using these
	scrolls). We could drop the cost in these scrolls, or just 
	make magical properties restorable by the anvils. 

	Weapons could have a repair anvil too, but here only the 
	original "magical" properties of the equipment are restored. 


	  b. Changes to skills, new skills first_aid and 2-handed melee

	With the new attack modes, it makes sense to give some new 
	properties to older skills, ie:

	Jumping skill	--	Give it ability to do knockback (really 
				ought to call this skill jumping/kicking). 
				Allow more damage versus inanimate objects
				(eg. doors). 
	Punching skill	--	Give it a stun effect as per bash.
	Karate skill	--	Allow it to parry thrown weapons/arrows.
	Clawing skill	--	Give it a cutting attack mode.

	And lets add two new skills:

	first aid 	--	Application can lower the bleeding level
				and do *minor* healing (ie 1-2 pts). May
				implement this as a skill-item "bandages"
				(this is a knowledge skill either way).

	2-handed melee	--	User can wield 2 weapons (with restrictions
				based on Str). The primary weapon can be
				used to make special attacks, and the 
				secondary weapon is used to determine the 
				effect of being able to 'parry' special 
				attacks (ie takes the place of a shield; 
				in parrying a special attack the secondary
				weapon may be damaged too!).
				You get some small ac and damage benefits
				from the secondary weapon too. May get lower
				exp gain from using this skill (for the 
				sake of playbalance).

	  c. Changes to spells and new spells

	It would be nice to create some clerical spells can that affect 
	attack modes, bleeding and fatigue. Alter the healing spells so
	that fatigue and bleeding can also be 'cured'. 

	Wizard spells could be created that allow the player to temporarily
	enchant their weapons with special attack modes.