From: Angelo S. <ang...@oo...> - 2003-01-18 18:45:26
|
> Oliver Due Billing wrote: > > Well since the code is being reworked anyway I feel we should add a few changes, simple changes due to our time need. > > Our goal would be to > > 1. Add a way for the attacker to more easily harm a base. Eg give up with the old everything or nothing method. A method of wearing a base down. > I would make it dependend on amount of ships and total constructions(only SG/DH and turrets). Variables: totalShield # fill status of shield generators attackerCount # number of ships attacking totalConstructions # see below totalConstructions = turretCount + sgCount + dhCount; Then I would divide totalShield by number of attacking Ships. Suppose we have 5000 shields installed and 10 attacking ships ... then in the first round we assign 500 shield to each ship: totalShield / attackerCount. Lets call this: shieldPerAttacker. If a ship has done shieldPerAttacker damage, the remaining HPs(if any) destroy constructions (if they have armor damage). Very likel yin the first combat rounds there is more than 500 shield per ship, so the first combat rounds won't damage the base. When shield goes down at some point we will have shieldPerAttacker smal enough so that the first 1 or 2 or 3 shots remove that shield and the remaining 2 or 3 shots might hit a construction. Basicly you only need to calculate shieldPerAttacker at start of combat round, to change the firering of weapons to stop making shield damage, when the summed up damage exceedes shieldPerAttacker, and then call your new fucntion with the remaining weapons to fire on constructions. > 2. Add a way so the defender have a chance to at least take some of his attackers with him(without the defender being logged on). Eg gie up on the easy calculations. If we are 10 ships we will never die...so lets be 10 ships > > > This should be done simple with simple formulaes, and as little add-on to teh current modules as possible. > Init: numTargets = attackerCount; // ### numTurrets = base.turrets; numCDs = base.CDs; numCDTargets = attackerCount Loop: firingTurrets = numTurrets / 2; Distrubute firingTurrets on numTargets; fire! numTurrets = numTurrets - (numTurrets / 2); numTargets = numTargets - (numTargets / 2); goto loop; Do the same with CDs. The result is you have at least one turret on every target as long as you have enough turrets. The more in front of the line a ship is, the more turrets fire on it. For 20 turrets and 10 ships it looks like this: s s s s s s s s s s t t t t t t t t t t t t t t t t t t t t This is when you round downwards in the / 2 calculations above. If you round upwards it is: s s s s s s s s s s t t t t t t t t t t t t t t t t t t <<< t t The CDs could fire on the upper half of the attacker fleet, using a similar approach, or of course, also on the lower part. > For goal 1 I am thinking of a simple damage formula, for every X points of damage pr round there is a chance of destroying a turret/shield gen/drone hangar. > > For goal 2 The simple round-robin way eg 10 attackers each get 1/10 of the defense is not good enough. Our ecperience has shown that a completely random way is not good either(noone will bust). But how and why is my question > > So lets open teh discussion and keep in mind, use what we have know. Dont add 100 imaginary features, cause I can gurantee you it wont be implemented. Think as the attacker AND as the defender. > > Middy Anyway, I hope this is easy enough :-) Its a simplified version of my proposal for base/fleet combat which I had made in phorum some year ago. aos ---------------------------------------------------------------------- Angelo Schneider OOAD/UML Ang...@oo... Putlitzstr. 24 Patterns/FrameWorks Fon: +49 721 9812465 76137 Karlsruhe C++/JAVA Fax: +49 721 9812467 |