The mighty Fort Firght

  • Thread starter DeletedUser30224
  • Start date

DeletedUser30224

If you find time, can you add your reason as well? Thanks
 

DeletedUser563

On second thought I was confused with another similar idea with also a lot of calculations and algorithms. I think all the fort fighting proposal should be grouped together and given to the developers to consider. I dont really have that much to complain about but obviously it is seen as some kind of problem. Well a HP tank already has bad defenses. All I would say is that if you increased the damage it would mean the end of them altogether as they will get shot to pieces in a few rounds where a player like tom paris with 10000 last around 4 to 5 rounds at point he will probably last 2 rounds. But I will change my vote to Yes so that the developers have many ideas to consider.
 

DeletedUser30224

you are something Jackalls you know that ? :)
You do not like the proposal because it is very detailed ? You do not like it because I allowed myself to put an algorithm for those that understand it? You do not like it because you think it is up to developers to use their brainpower and do it all themselves ... hell, let's just give them: " We, the chaps that are playing this game want fort fighting to change. Please change it and get back to us as soon as possible. But be careful you developers, if we do not like it we will complain again! Aaaand, one more thing developers, surprize us! "

I always though the best explanation is by providing examples ... so you do not like it because I provided these examples?

I do not know man, I guess you can't have everyone liking you, after all we are all different people and some just do not want to mingle :p Thanks for your shabby yes I suppose.

One more thing: the fella on point with 10000 hp is supposed to die in less than 24 hits...it is up to him to decide if he wants to put some fort skills so that he rather dodge some of those hits than take them all in.
 

DeletedUser

Yep, nice speech Samuel. But, as Zd indicated, you are not providing a solution and are not recognizing how changing fort gun damage effectively addresses the hp issue without pissing off a lot of players who have respecced their characters to take advantage of the hp issue. Changing fort gun damage, particularly utilizing a percentage, presents an elegant solution.

Also, the argument of attempting to boost the influence of other skills is insufficient and results in new problems, such as far longer, or far shorter, fort battles based on skill points of the respective teams. Indeed, it doesn't even remotely address the issue of hp being such a deciding factor, precisely because a person with 12,000 hps can easily manage being hit 50 times before going down.

The ol' adage is to fix the problem, not create potential for new problems.

Firstly, Although changing fort gun damage does address the HP issue it does so in a artificial fashion. There is no rationale that would account for a weapon doing more damage to a more robust target.
Secondly, regardless of the solution there are going to be a large number of people who will be compelled to retool.
Thirdly, This will make fort defenses extremely difficult as towers will be cleared very quickly when they come under fire from 40 guns if the greatest number of potential hits someone can take is 10-12.

An adjustment of the exponential would address the High HP problem because it would encourage skill points be placed in the other fort skills increasing the likelihood of a hit or dodge. It would do so in a fashion that makes some intuitive sense rather than having a weapon that magically does more damage if it hits a beefier target.
 

DeletedUser

Hmm, I gather you're new.

Before players realied the magic skill was hps, people generally played with the characters they had been questing, dueling, and working with. The fort battles weee interesting and towers took a lot of effort to take over. Your arguments are invalid, in that you pose an incorrect presumption, infer a slippery slope.

I will have some free time soon to work on those graphs. Perhaps things will be a bit more transparent when such is presented, and we can discuss it without all the doom and gloom arguments.
 

DeletedUser

Heya Zd3,

I made some graphs and will post them soon as I have a wifi connect (on phone). After doing the calcs, I found a few errors in your presentation (some of which confused me, and likely others). For example, you indicate in your variable "damage%" that it os a random percentage between 8% and 12% but, according to your earlier description, those percentages belong to the Golden Gun only.

Overall, after working it all out (taking into account the 1/3 max, the weapon min, and your njub mistakes), your proposal is sound, it's just your presentation that sucks, hehe.

Seriously, well done. I'll get those graphs to you as soon as possible and provide some corrections for your presentation.
 

DeletedUser

:blink: the might Hellstromm is defeated?!?!??!!!

When this idea comes to voting, I will say yes.
 

DeletedUser

Hehe Rice, not necessarily. There were errors and omissions in the original proposal, which when I looked at it and did some quick number crunching, felt it was unworkable. After putting the efforts to work on creating reports/graphs to refute the presentation, I found the errors he posted and included the omissions. The corrected result is workable. I.e., his idea is good, his presentation of such was a bit messy. Still, zd3's idea is an elegant solution:

totalHP = target's total (undamaged) health points
currentHP = target's health points at time of hit
dmgRnd = random value between [or equal to] min and max damage and updated only if hit = true
dmg% = a percentage calculated from dmgRnd and updated only if hit = true
twMax = calculated number used to cutoff damage to no more than 1/3 target's total (undamaged) health points.
MinDmg = the minimum damage of a specced fort gun
calcDmg = damage calculation, modified by a series of formulas
dmgMade = calculated damage, deducted from target's current health points

  1. First obtain random gun damage,
  2. Then divide random gun damage by 2900, which results in a fraction,
  3. Then multiply target's current health points by fraction, which results in a calculated damage,
  4. Then determine if calculated damage is less than minimum gun damage,
  5. if so, then replace calculated damage number with number from minimum gun damage,
  6. Then determine if calculated damage is less than random gun damage,
  7. if so, then replace calculated damage number with number from random gun damage
  8. Then determine if calculated damage is more than The West's maximum damage allowed per hit,
  9. if so, then damage made is number from The West's maximum damage per hit,
  10. if not, then damage made is calculated damage,
  11. Then deduct damage made from target's current health points.
Example code:
[spoil]
Code:
{determine variables
}
dmg% = (dmgRnd/2900);
calcDmg = currentHP*dmg%;
twMax = totalHP/3;

if(hit=true)then

{ensure calculated damage is not less than minimum gun damage
}
if(calcDmg < MinDmg then 
calcDmg = MinDmg;

{ensure calculated damage is not less than rolled damage
}
if calcDmg < dmgRnd then 
calcDmg = dmgRnd;

{ensure calculated damage is not more than 1/3 of target's total, unmodified health points
}
if calcDmg > twMax then 
dmgMade = twMax;
else 
dmgMade = calcDmg;

{deduct damage from current health points
}
currentHP = currentHP-dmgMade;
[/spoil]
Health Points Remaining per Hit (click on images to zoom): [spoil]












[/spoil]
Damage Incurred by Health Points (click on images to zoom): [spoil]















[/spoil]
Hits Required to Pass-Out Target - per Health Points (click on images to zoom): [spoil]






[/spoil]

Zd3, the number you chose, 2900, is a magic value in these equations. I noticed by changing just that number, we can adjust the severity of these graphs, making the curve a bit harsher, or softer. Did you want me to pose some adjusted graphs, using different magic values?

Edit: here's two PDFs, if you would prefer to just download them to review the above charts/graphs (hi-res, actual text):
http://www.box.com/s/75f8a8ph1056fdyfc0sz
http://www.box.com/s/8m89p16ub7sm5iuzkab5
 
Last edited by a moderator:

DeletedUser30224

Beautiful Hell. You have a mistake or intentional upper limit on shots needed to KO a target (51). I am not sure if you calculated the average on rounds available in forts (big 55 rounds) or it's a glitch, but yes, That is exactly what I was talking about.

Sorry I am not native English speaker... so probably couldn't explain it so well.

I was bussy-bee as well: I remedied my code and included the max damage if damage > 1/3*maxHP, and Buffs.

Here is the result:
[SPOIL]
Code:
Please enter the HP of your opponent:10000
Min gun damage =200
Max gun damage =300
[6.896% - 10.344%]

Lube [20-40] - press 1
Bayo [25-75] - press 2
Nothing - press 0
Please enter gun Buff:0


 Using Percentage:
 Shot 1 : You hit for 878.30 damage. Opponent has 9121.70 HP left. %

 Shot 2 : You hit for 880.97 damage. Opponent has 8240.73 HP left. %

 Shot 3 : You hit for 653.32 damage. Opponent has 7587.40 HP left. %

 Shot 4 : You hit for 572.32 damage. Opponent has 7015.08 HP left. %

 Shot 5 : You hit for 661.66 damage. Opponent has 6353.42 HP left. %

 Shot 6 : You hit for 487.18 damage. Opponent has 5866.24 HP left. %

 Shot 7 : You hit for 453.64 damage. Opponent has 5412.60 HP left. %

 Shot 8 : You hit for 484.43 damage. Opponent has 4928.18 HP left. %

 Shot 9 : You hit for 420.37 damage. Opponent has 4507.80 HP left. %

 Shot 10 : You hit for 368.47 damage. Opponent has 4139.34 HP left. %

 Shot 11 : You hit for 352.38 damage. Opponent has 3786.95 HP left. %

 Shot 12 : You hit for 371.95 damage. Opponent has 3415.00 HP left. %

 Shot 13 : You hit for 263.84 damage. Opponent has 3151.16 HP left. %

 Shot 14 : You hit for 273.96 damage. Opponent has 2877.19 HP left. %

 Shot 15 : You hit for 243.00 damage. Opponent has 2634.19 HP left.

 Shot 16 : You hit for 262.00 damage. Opponent has 2372.19 HP left.

 Shot 17 : You hit for 237.00 damage. Opponent has 2135.19 HP left.

 Shot 18 : You hit for 273.00 damage. Opponent has 1862.19 HP left.

 Shot 19 : You hit for 246.00 damage. Opponent has 1616.19 HP left.

 Shot 20 : You hit for 211.00 damage. Opponent has 1405.19 HP left.

 Shot 21 : You hit for 231.00 damage. Opponent has 1174.19 HP left.

 Shot 22 : You hit for 258.00 damage. Opponent has 916.19 HP left.

 Shot 23 : You hit for 219.00 damage. Opponent has 697.19 HP left.

 Shot 24 : You hit for 272.00 damage. Opponent has 425.19 HP left.

 Shot 25 : You hit for 283.00 damage. Opponent has 142.19 HP left.

 Shot 26 : You hit for 254.00 damage. Opponent has -111.81 HP left.


 Currently:40 hits killed opponent.
[/SPOIL]
The "%" sign next to the text shows us when a target was hit using the percentage value.

Find attached the .java file, if you have JDK installed, you can compile the program and run it on your end. It is interactive, so try it out.
Or just textcopy it:
[Spoil]
Code:
import java.util.Random;
import java.util.Scanner;
public class Damage {
public static void main(String [] args){

Random generator = new Random();
Scanner input = new Scanner(System.in);

// Variable init
int hpThreshold = 2900;
double maxHp;
double hp = 0;
int counter = 0;
int counter1 = 0;
double damage = 0;
double result = 0;
double randomPercentageDamage = 0;
int minGunDamage = 0;
int maxGunDamage = 0;
int minPercentageDamage = 0;
int maxPercentageDamage = 0;
int randomGunDamage =0;
int randomGunDamage1 =0;
int buff = 0;
int buffMin = 0;
int buffMax = 0;
int choice = 0;


// Set HP
do
{
    System.out.print("Please enter the HP of your opponent:");
    maxHp = input.nextDouble();
} while (maxHp <= 0);
hp = maxHp;

// Set minimal and maximal Gun Damage
do
{
    System.out.print("Min gun damage =");
    minGunDamage = input.nextInt();
    System.out.print("Max gun damage =");
    maxGunDamage = input.nextInt();
} while ((minGunDamage < 1) || (maxGunDamage < minGunDamage));

// Calculate min and max percentage damage 
minPercentageDamage = (int)((double)minGunDamage/hpThreshold*100000);
maxPercentageDamage = (int)((double)maxGunDamage/hpThreshold*100000);
System.out.printf("[%s%% - %s%%]\n",(double)minPercentageDamage/1000, (double)maxPercentageDamage/1000);

// Set Buff
do{
System.out.print("\nLube [20-40] - press 1\nBayo [25-75] - press 2\nNothing - press 0\nPlease enter gun Buff:");
choice = input.nextInt();
} while ((choice < 0) || ( choice > 2));

switch (choice)
{
case 1: 
{
    buffMin =20; buffMax = 40; 
    buff = generator.nextInt(buffMax-buffMin) + buffMin;break;
}
case 2: 
{
    buffMin =25; buffMax = 75; 
    buff = generator.nextInt(buffMax-buffMin) + buffMin; break;
}
}



//Using the percentage
System.out.printf("\n\n Using Percentage:");
do
{
    randomGunDamage = generator.nextInt(maxGunDamage-minGunDamage) + minGunDamage;                      
    randomGunDamage1 = generator.nextInt(maxPercentageDamage-minPercentageDamage) + minPercentageDamage;
    randomPercentageDamage = ((double)randomGunDamage1/100000)*hp;
    counter ++;

    if ((randomPercentageDamage)<randomGunDamage)
        {
        damage = randomGunDamage + buff;
        // account for "max damage can be one third from max HP" rule
        if ((damage - buff) > (maxHp/3))
            damage = maxHp/3;
        hp = hp - damage;
        System.out.printf("\n Shot %d : You hit for %.2f damage. Opponent has %.2f HP left.\n",
        counter,damage, hp);
        }
    else 
    {
        damage = randomPercentageDamage + buff; 
        hp = hp - damage;
        System.out.printf("\n Shot %d : You hit for %.2f damage. Opponent has %.2f HP left. %%\n",
        counter,damage, hp);
    }
}while (hp > 0.99); // hp > 0 is not enough because substracting 3 times a third from maxHp doesn't result in a clean 0


// Current implemetnation
hp = maxHp;
//System.out.printf("\n\n Currently:");
do 
{
    randomGunDamage = generator.nextInt(maxGunDamage-minGunDamage) + minGunDamage; 
    counter1 = counter1 +1;
    damage = randomGunDamage + buff;
    if ((damage - buff) > (maxHp/3))
            damage = maxHp/3;
    hp = hp-damage;
    //System.out.printf("\n Shot %d : You hit for %.2f damage. Opponent has %.2f HP left",counter1,damage, hp);
} while (hp >=0.99);
System.out.printf("\n\n Currently:%d hits killed opponent.", counter1);


}
}
[/Spoil]

PS.Hellstorm, can you please explain to me how can I wrap up the code and attach a button to "show" like you did?
 

Attachments

  • Damage.java.zip
    1.2 KB · Views: 4
Last edited by a moderator:

DeletedUser22685

PS.Hellstorm, can you please explain to me how can I wrap up the code and attach a button to "show" like you did?

HTML:
[SPOIL]Your text here[/SPOIL]
 
Last edited by a moderator:

DeletedUser

Note that you need to nest the code tag inside the spoil tag, like so: [spoil]
Code:
 insert text here ["/"code] ["/"spoil]
 

DeletedUser22685

The [SPOIL] tag is what I meant to type, but when the
Code:
 tags didn't nullify the spoiler code I changed them to HTML and must've backspaced the spoil tags instead of the code ones :hmf:

Fixed it now.
 
Last edited by a moderator:

DeletedUser

Kay, when you rework your proposal, I think it's a good idea to point out that the 2900 is the magical number, as it will allow the developers to play with that number, should they feel the need to work on game balance.

Edit: the 51 wasn't a mistake, I set the limit to 50 and added a code that would automatically change the 51 to a statement, but it got in the way of my charts, so I removed it rather than rework it and left the whole thing as is. Figured I spent enough time on it, hehe.
 
Last edited by a moderator:

DeletedUser

*mind blown*

I do not fort fight at all, but if this were implemented, it would definitely be more attractive to start fort fighting. So yes please?
 
Top