v0.8.9 (Bugfixes + translations) released to Google Play!

Useful links
Source code of the game - Contribution guide - ATCS Editor - Translate the game on Weblate - Example walkthrough - Andor's Trail Directory - Join the Discord
Get the game (v0.8.9) from Google, F-Droid, our server, or itch.io

FSTH damage potential increase?

Post your questions about game contents here. Want to know how to complete a quest, or where to go to find an item? Post here!
User avatar
Voom
VIP
Posts: 617
Joined: Sat Dec 19, 2015 5:24 pm
android_version: 7.0
Location: Fort Lauderdale, FL

Re: FSTH damage potential increase?

Post by Voom »

The ideal solution (as discussed before):
Weapon stats equal a stated % of base stats.
All equipment stats equal a stated % of character's base stats.
There are many types of stats that are exceptions (ones that do not appear as a base stat).
This undoubtedly allows weapons to scale and minimizes their base stat uselessness.

Was that simple or what?

The base stats to be treated like this include HP, AC, AD, and BC.
Example: If a character has 100 HP, 200 AC, 30 AD, and 60 BC, then holding Valugha's shimmering hat could give the character +3% HP, +8% AC, -7% AD, -8% BC, and -1 Move Cost.
Voom
User avatar
Zukero
Lead Developer
Posts: 2028
Joined: Thu Jul 21, 2011 9:56 am
android_version: 8.0
Location: Eclipse

Re: FSTH damage potential increase?

Post by Zukero »

Sounds easy right? Code-wise it is. But then we have to rebalance the whole game. All equipment, all weapons, all enemies. THAT is hard, and long.
Combat system overhaul is more or less planned for v0.8.0, but our priority is creating the content for v0.7.2.
Lvl: 78, XP: 8622632, Gold: 271542, RoLS: 1, ElyR: -, RoL: -, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 1, VSH: 1, WMC: 1, GoW: 1
HP: 71, AC: 301%, AD: 38-47, AP: 3, ECC: 50%, CM: 3.75, BC: 101%, DR: 2
User avatar
rijackson741
Posts: 4451
Joined: Tue Aug 20, 2013 2:04 am
android_version: 10 - Android 10
Location: Somewhere in Dhayavar
Contact:

Re: FSTH damage potential increase?

Post by rijackson741 »

Voom wrote: Sat Jul 08, 2017 4:10 am The ideal solution (as discussed before):
Weapon stats equal a stated % of base stats.
All equipment stats equal a stated % of character's base stats.
There are many types of stats that are exceptions (ones that do not appear as a base stat).
This undoubtedly allows weapons to scale and minimizes their base stat uselessness.

Was that simple or what?
Well, if you read through the damage per round thread that I pointed to (http://andorstrail.com/viewtopic.php?f=4&t=4096), no, it's not simple. The devil is in the details, and there are a lot of details. What should the multiplier be for different weapons? What about BC, and multipliers for shields vs armor? What about DR (IMO this should be left static, as it is now)? What do we do about rings, which, as others have pointed out (http://andorstrail.com/viewtopic.php?f= ... 798#p56798), are rather overpowered? Is DPR even the best solution (I think it's a great starting point, but I am not sure it's the total answer). And, as Zukero points out, once we have the details worked out and the new system implemented, almost every item, and possibly every monster, will need to be adjusted.

Like I said, we only want to do this once, which means a lot of upfront work making sure we got it right, and then a lot of work adjusting everything. It's a huge project.
Level:71, XP:6493739, PV:608, FQ:84
HP:210, AC:212, AD:58-77, AP:4, ECC:16%, CM:1.5, BC:188, DR:3
Gold: 237559 | RoLS:1, RoL:1, GoW:1, VSH:1, RoFLS:1, WoB:1
HH:1, WA:1, CS:2, Cl:1, IF:4, Ev:3, Re:2, WP:DA:1, WP:1S:1, WP:B:1, AP:L:1, FS:DW:2, S:DW:1
User avatar
Voom
VIP
Posts: 617
Joined: Sat Dec 19, 2015 5:24 pm
android_version: 7.0
Location: Fort Lauderdale, FL

Re: FSTH damage potential increase?

Post by Voom »

I'm sure it is a huge project. Unfortunately, I don't see the next update without it. Advancing the narrative without an established foundation might be bad news. However, I could be wrong. Maybe we can implement a new equipment arrangement in v7.4 after the next two updates that go together.

I've read through the DPR thread but it is easy to lose track due to side bar conversations. So I didn't get the whole BC issue (I'll read up). I believe the best way to go is to leave every stat static except for the four base stats, whether it's Multiplier, DR, Move cost, CS, AP/Attack cost (are there more?). Conditions like BW Misery need not be changed either. Conditions, like it was mentioned in the DPR thread, do need to be adjusted.

It is hard to come up with a place to start so that changes we want to see are done fairly and in context with AT's other game elements. I have thought a little about this and I propose we start equating %HP, %AC, %AD, and %BC as a simple reference point to the adjustments we make to equipment, etc. Right now, as apportioned by level ups, 5 HP = 5 AC = 1 AD = 3 BC. Of course, we know this is flawed due to the scaling issue. That is why %Stat should be used.

I understand that coming up with a formula might be difficult and arbitrary, but if the devs do not come up with the formula (arbitrary or not), then who else will? Oskar came up with stat pricing through, I'm guessing, an arbitrary means. In ATCS, as I have discussed before in other threads, every buyable/sellable item has a price in terms of gold based on its stats and conditions. This pricing is scaled exponentially based on the models that I recreated (except for DR, which I believe is a straight line when plotted). Every stat has its own unique, originally created equation. I wonder if Oskar or anyone else still has those equations b/c my recreations using excel can't ever be 100% accurate (trust me, I tried). As a note, when I say that each stats' pricing equation is exponential, I mean that the more HP you have the less even more HP is worth. That is the scaling inherent in the value of each stat.

So, the point is that we need to decide how much +1% HP equals in terms of %AC, %ADmin, %ADmax, %BC. According to the ATCS pricing equations, ADmin is worth a little more than ADmax all throughout the graphed scale. Example: +10% HP = +5% AC = +40% ADmin = +45% ADmax = +15% BC. Yes, this will be an arbitrary measure of equipment, etc., but we can use the ATCS pricing equations as a guide.
Voom
User avatar
rijackson741
Posts: 4451
Joined: Tue Aug 20, 2013 2:04 am
android_version: 10 - Android 10
Location: Somewhere in Dhayavar
Contact:

Re: FSTH damage potential increase?

Post by rijackson741 »

Voom wrote: Sat Jul 08, 2017 7:08 pm I'm sure it is a huge project. Unfortunately, I don't see the next update without it. Advancing the narrative without an established foundation might be bad news. However, I could be wrong. Maybe we can implement a new equipment arrangement in v7.4 after the next two updates that go together.
The next one has to be new content, because people have already waited too long. Adding some new content will not make the combat problems any worse, except to the extent that there will be more content that needs to be adjusted later.

However, after that, I agree with you. We need to fix it sooner rather than later, because that will have the minimum impact on players builds going forward.
Voom wrote: Sat Jul 08, 2017 7:08 pm I've read through the DPR thread but it is easy to lose track due to side bar conversations. So I didn't get the whole BC issue (I'll read up). I believe the best way to go is to leave every stat static except for the four base stats, whether it's Multiplier, DR, Move cost, CS, AP/Attack cost (are there more?). Conditions like BW Misery need not be changed either. Conditions, like it was mentioned in the DPR thread, do need to be adjusted.

It is hard to come up with a place to start so that changes we want to see are done fairly and in context with AT's other game elements. I have thought a little about this and I propose we start equating %HP, %AC, %AD, and %BC as a simple reference point to the adjustments we make to equipment, etc. Right now, as apportioned by level ups, 5 HP = 5 AC = 1 AD = 3 BC. Of course, we know this is flawed due to the scaling issue. That is why %Stat should be used.
I would leave HP static too. It's mainly AD that needs the fix, but AC and BC would also benefit.
Voom wrote: Sat Jul 08, 2017 7:08 pm I understand that coming up with a formula might be difficult and arbitrary, but if the devs do not come up with the formula (arbitrary or not), then who else will? Oskar came up with stat pricing through, I'm guessing, an arbitrary means. In ATCS, as I have discussed before in other threads, every buyable/sellable item has a price in terms of gold based on its stats and conditions. This pricing is scaled exponentially based on the models that I recreated (except for DR, which I believe is a straight line when plotted). Every stat has its own unique, originally created equation. I wonder if Oskar or anyone else still has those equations b/c my recreations using excel can't ever be 100% accurate (trust me, I tried). As a note, when I say that each stats' pricing equation is exponential, I mean that the more HP you have the less even more HP is worth. That is the scaling inherent in the value of each stat.
I've never looked into how the pricing of items is calculated, but I have been meaning to because I think that needs adjusting too. The equations are buried in the code somewhere, just have to find them :)
Voom wrote: Sat Jul 08, 2017 7:08 pm So, the point is that we need to decide how much +1% HP equals in terms of %AC, %ADmin, %ADmax, %BC. According to the ATCS pricing equations, ADmin is worth a little more than ADmax all throughout the graphed scale. Example: +10% HP = +5% AC = +40% ADmin = +45% ADmax = +15% BC. Yes, this will be an arbitrary measure of equipment, etc., but we can use the ATCS pricing equations as a guide.
Only if we believe that the pricing equations are currently balanced correctly ;) This kind of question is what I mean by getting it right when we do it, so that we don't have to do it again.
Level:71, XP:6493739, PV:608, FQ:84
HP:210, AC:212, AD:58-77, AP:4, ECC:16%, CM:1.5, BC:188, DR:3
Gold: 237559 | RoLS:1, RoL:1, GoW:1, VSH:1, RoFLS:1, WoB:1
HH:1, WA:1, CS:2, Cl:1, IF:4, Ev:3, Re:2, WP:DA:1, WP:1S:1, WP:B:1, AP:L:1, FS:DW:2, S:DW:1
User avatar
Zukero
Lead Developer
Posts: 2028
Joined: Thu Jul 21, 2011 9:56 am
android_version: 8.0
Location: Eclipse

Re: FSTH damage potential increase?

Post by Zukero »

From ATCS' code (which is a port of AT's code in this instance) :

Code: Select all

	public Integer computePrice() {
		int price = 0;
		if (category != null && category.action_type != null) {
			if (category.action_type == ItemCategory.ActionType.use) {
				price += kill_effect == null ? 0 : calculateUseCost();
			} else if (category.action_type == ItemCategory.ActionType.equip) {
				price += equip_effect == null ? 0 : calculateEquipCost(isWeapon());;
				price += hit_effect == null ? 0 : calculateHitCost();
				price += kill_effect == null ? 0 : calculateKillCost();
			}
		}
		return Math.max(1, price);
	}

Code: Select all

	public int calculateUseCost() {
		final float averageHPBoost = (zeroForNull(kill_effect.hp_boost_min) + zeroForNull(kill_effect.hp_boost_max)) / 2.0f;
		if (averageHPBoost == 0) return 0;
		return (int) (0.1*Math.signum(averageHPBoost)*Math.pow(Math.abs(averageHPBoost), 2) + 3*averageHPBoost);
	}

	public int calculateEquipCost(boolean isWeapon) {
		final int costBC = (int) (3*Math.pow(Math.max(0, zeroForNull(equip_effect.increase_block_chance)), 2.5) + 28*zeroForNull(equip_effect.increase_block_chance));
		final int costAC = (int) (0.4*Math.pow(Math.max(0,zeroForNull(equip_effect.increase_attack_chance)), 2.5) - 6*Math.pow(Math.abs(Math.min(0,zeroForNull(equip_effect.increase_attack_chance))),2.7));
		final int costAP = isWeapon ?
				(int) (0.2*Math.pow(10.0f/zeroForNull(equip_effect.increase_attack_cost), 8) - 25*zeroForNull(equip_effect.increase_attack_cost))
				:-3125 * zeroForNull(equip_effect.increase_attack_cost);
		final int costDR = 1325 * zeroForNull(equip_effect.increase_damage_resistance);
		final int costDMG_Min = isWeapon ?
				(int) (10*Math.pow(Math.max(0, zeroForNull(equip_effect.damage_boost_min)), 2.5))
				:(int) (10*Math.pow(Math.max(0, zeroForNull(equip_effect.damage_boost_min)), 3) + zeroForNull(equip_effect.damage_boost_min)*80);
		final int costDMG_Max = isWeapon ?
				(int) (2*Math.pow(Math.max(0, zeroForNull(equip_effect.damage_boost_max)), 2.1))
				:(int) (2*Math.pow(Math.max(0, zeroForNull(equip_effect.damage_boost_max)), 3) + zeroForNull(equip_effect.damage_boost_max)*20);
		final int costCS = (int) (2.2*Math.pow(zeroForNull(equip_effect.increase_critical_skill), 3));
		final int costCM = (int) (50*Math.pow(Math.max(0, zeroForNull(equip_effect.critical_multiplier)), 2));

		final int costMaxHP = (int) (30*Math.pow(Math.max(0,zeroForNull(equip_effect.max_hp_boost)), 1.2) + 70*zeroForNull(equip_effect.max_hp_boost));
		final int costMaxAP = (int) (50*Math.pow(Math.max(0,zeroForNull(equip_effect.max_ap_boost)), 3) + 750*zeroForNull(equip_effect.max_ap_boost));
		final int costMovement = (int) (510*Math.pow(Math.max(0,-zeroForNull(equip_effect.increase_move_cost)), 2.5) - 350*zeroForNull(equip_effect.increase_move_cost));
		final int costUseItem = (int)(915*Math.pow(Math.max(0,-zeroForNull(equip_effect.increase_use_item_cost)), 3) - 430*zeroForNull(equip_effect.increase_use_item_cost));
		final int costReequip = (int)(450*Math.pow(Math.max(0,-zeroForNull(equip_effect.increase_reequip_cost)), 2) - 250*zeroForNull(equip_effect.increase_reequip_cost));

		return costBC + costAC + costAP + costDR + costDMG_Min + costDMG_Max + costCS + costCM
				+ costMaxHP + costMaxAP
				+ costMovement + costUseItem + costReequip;
	}


	public int calculateHitCost() {
		final float averageHPBoost = (zeroForNull(hit_effect.hp_boost_min) + zeroForNull(hit_effect.hp_boost_max)) / 2.0f;
		final float averageAPBoost = (zeroForNull(hit_effect.ap_boost_min) + zeroForNull(hit_effect.ap_boost_max)) / 2.0f;
		if (averageHPBoost == 0 && averageAPBoost == 0) return 0;

		final int costBoostHP = (int)(2770*Math.pow(Math.max(0,averageHPBoost), 2.5) + 450*averageHPBoost);
		final int costBoostAP = (int)(3100*Math.pow(Math.max(0,averageAPBoost), 2.5) + 300*averageAPBoost);
		return costBoostHP + costBoostAP;
	}

	public int calculateKillCost() {
		final float averageHPBoost = (zeroForNull(kill_effect.hp_boost_min) + zeroForNull(kill_effect.hp_boost_max)) / 2.0f;
		final float averageAPBoost = (zeroForNull(kill_effect.ap_boost_min) + zeroForNull(kill_effect.ap_boost_max)) / 2.0f;
		if (averageHPBoost == 0 && averageAPBoost == 0) return 0;

		final int costBoostHP = (int)(923*Math.pow(Math.max(0,averageHPBoost), 2.5) + 450*averageHPBoost);
		final int costBoostAP = (int)(1033*Math.pow(Math.max(0,averageAPBoost), 2.5) + 300*averageAPBoost);
		return costBoostHP + costBoostAP;
	}
I hope it helps. You'll have to decipher it, but I believe that variables are named well-enough for you to figure it out.
Lvl: 78, XP: 8622632, Gold: 271542, RoLS: 1, ElyR: -, RoL: -, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 1, VSH: 1, WMC: 1, GoW: 1
HP: 71, AC: 301%, AD: 38-47, AP: 3, ECC: 50%, CM: 3.75, BC: 101%, DR: 2
User avatar
rijackson741
Posts: 4451
Joined: Tue Aug 20, 2013 2:04 am
android_version: 10 - Android 10
Location: Somewhere in Dhayavar
Contact:

Re: FSTH damage potential increase?

Post by rijackson741 »

Thanks. That will save me some time :D
Level:71, XP:6493739, PV:608, FQ:84
HP:210, AC:212, AD:58-77, AP:4, ECC:16%, CM:1.5, BC:188, DR:3
Gold: 237559 | RoLS:1, RoL:1, GoW:1, VSH:1, RoFLS:1, WoB:1
HH:1, WA:1, CS:2, Cl:1, IF:4, Ev:3, Re:2, WP:DA:1, WP:1S:1, WP:B:1, AP:L:1, FS:DW:2, S:DW:1
User avatar
Voom
VIP
Posts: 617
Joined: Sat Dec 19, 2015 5:24 pm
android_version: 7.0
Location: Fort Lauderdale, FL

Re: FSTH damage potential increase?

Post by Voom »

Thanks, Zukero. I can see all the formulas, but I'm not sure I understand some of the terminology.

I think out of principle, HP shouldn't be static b/c it might have a scaling issue as well. But that is something that can be discussed.
Voom
User avatar
marquinho
Posts: 36
Joined: Mon Jul 03, 2017 6:09 am
android_version: 4.4 - Kitkat

Re: FSTH damage potential increase?

Post by marquinho »

I think you don't need %HP items when there's Increased Fortitude. That gives you enough HP that you need.
%HP items + IF would be too strong imo.
Tarobinha Lv52 Blackwater Thief
AP:12/3 HP:134 AC:309% AD:47-52, CHS:-49, BC:182%, DR:1
IF:3, CS:2, MF:1, S:DW, DP:3, LAP:3
BWH, BWA, BWD:2, Mt, RotP, RoLS, GotG, ECB
GoW:1

There is no honor among thieves.
User avatar
Zukero
Lead Developer
Posts: 2028
Joined: Thu Jul 21, 2011 9:56 am
android_version: 8.0
Location: Eclipse

Re: FSTH damage potential increase?

Post by Zukero »

On the other hand, it would stop IF from being mandatory by giving a reasonable alternative.
Lvl: 78, XP: 8622632, Gold: 271542, RoLS: 1, ElyR: -, RoL: -, ChaR: 1, GoLF: 1, ShaF: 1, SRoV: 1, VSH: 1, WMC: 1, GoW: 1
HP: 71, AC: 301%, AD: 38-47, AP: 3, ECC: 50%, CM: 3.75, BC: 101%, DR: 2
Post Reply