Skip to content

Commit dea7735

Browse files
Haganekocarlosrpg
authored andcommitted
Yet Another Gold Remake (#2054)
* new gold pprogression (tentative) * redistributed initial creep gold * redistributed initial cave gold * updated gpm * change this setting * messily increase kill gold * attempt to pre-emptively balance arcanes * attempt to pre-emptively balance tranquils * beginning of a change to gold. A tga change riding on it * hack the rest of it * undo hacks * redistribute gold to something more normal * some of the hackery had escaped * make kills worth less early. * updated assist gold to the current dota system * fix new gold assist to only apply when killer team is poorer * Clean up assist gold formula code * Rename variables for clarity * Remove unused variables * Update comments and prints to reflect new formulas * Fix missing .. operator [Insert rant about how this was considered valid syntax thanks to Lua's alternative function call syntax that I have no idea why it exists] * fixed ranking factor placement * buffed arcanes and tranquils back up a bit * get rid of exponential XP * buff ggs too (oops) * buff tranquils by reducing distance * fix mistake * new kill gold values, fix typo * buff tranquils and arcanes. Blergh. * fixed typo * adaptation for the new map * fix missing parenthesis * added new creep camp * buff boots back * updated test map. Fixed typo. * updated other maps. Added comment.
1 parent 28a1006 commit dea7735

18 files changed

+124
-132
lines changed

content/maps/ardm.vmap

-132 KB
Binary file not shown.

content/maps/oaa.vmap

-132 KB
Binary file not shown.

content/maps/oaa_10v10.vmap

-132 KB
Binary file not shown.

content/maps/oaa_captains_mode.vmap

-132 KB
Binary file not shown.

content/maps/oaa_test.vmap

-121 KB
Binary file not shown.

content/materials/overviews/oaa.tga

0 Bytes
Binary file not shown.
-156 Bytes
Binary file not shown.

game/scripts/npc/items/farming/item_greater_tranquil_boots.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
"12"
122122
{
123123
"var_type" "FIELD_FLOAT"
124-
"distance_per_charge" "300.0"
124+
"distance_per_charge" "200.0"
125125
}
126126
"13"
127127
{

game/scripts/npc/items/farming/item_greater_tranquil_boots_2.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
"12"
122122
{
123123
"var_type" "FIELD_FLOAT"
124-
"distance_per_charge" "300.0"
124+
"distance_per_charge" "200.0"
125125
}
126126
"13"
127127
{

game/scripts/npc/items/farming/item_greater_tranquil_boots_3.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@
120120
"12"
121121
{
122122
"var_type" "FIELD_FLOAT"
123-
"distance_per_charge" "300.0"
123+
"distance_per_charge" "200.0"
124124
}
125125
"13"
126126
{

game/scripts/npc/items/farming/item_greater_tranquil_boots_4.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119
"12"
120120
{
121121
"var_type" "FIELD_FLOAT"
122-
"distance_per_charge" "300.0"
122+
"distance_per_charge" "200.0"
123123
}
124124
"13"
125125
{

game/scripts/vscripts/components/cave/cave.lua

-6
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,6 @@ function CaveHandler:SpawnCreepInRoom (room, properties, teamID, roomID)
142142
-- get random position
143143
local randPosition = room:GetAbsOrigin() + RandomVector(RandomFloat(10, 300))
144144

145-
--EXP BOUNTY
146-
local minutes = math.floor(GameRules:GetGameTime() / 60)
147-
if minutes > 60 then
148-
properties.exp = properties.exp * 1.5^(minutes - 60)
149-
end
150-
151145
local creep = CreateUnitByName(
152146
properties.name, -- name
153147
randPosition, -- location

game/scripts/vscripts/components/cave/cave_types.lua

+19-19
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ CAVE_TYPE_STATS_RESITS = 8
1010

1111
function MakeKFunctionForIndexPowerOffset (index, speed, offset, power)
1212
return function (k)
13-
return 1 + power*(CreepPower:GetBasePowerForMinute(k * speed + offset, 1)[index] - 1)
13+
return 1 + power*(CreepPower:GetBaseCavePowerForMinute(k * speed + offset)[index] - 1)
1414
end
1515
end
1616

@@ -42,12 +42,12 @@ CaveTypes = {
4242
[1] = { -- 1 "Howl's it Going?"
4343
{ --HP MANA DMG ARM GOLD EXP RESIST
4444
units = {
45-
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 176, 204, 30},
46-
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 176, 204, 30},
47-
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 176, 204, 30},
48-
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 176, 204, 30},
49-
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 176, 204, 30},
50-
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 176, 204, 30},
45+
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 141, 204, 30},
46+
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 141, 204, 30},
47+
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 141, 204, 30},
48+
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 141, 204, 30},
49+
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 141, 204, 30},
50+
{"npc_dota_neutral_custom_cave_big_pupper", 600, 0, 30, 1, 141, 204, 30},
5151
},
5252
multiplier = {
5353
mana = BaseMultipliers.mana(BaseCreepPowerMultiplier, 0, CaveProgressionBuff), -- function (k) return 1 end,
@@ -63,12 +63,12 @@ CaveTypes = {
6363
[2] = { -- 2 "Horse Tomatina"
6464
{ --HP MANA DMG ARM GOLD EXP RESIST
6565
units = {
66-
{"npc_dota_neutral_custom_cave_tomato", 450, 0, 38, 0.8, 176, 204, 40},
67-
{"npc_dota_neutral_custom_cave_tomato", 450, 0, 38, 0.8, 176, 204, 40},
68-
{"npc_dota_neutral_custom_cave_tomato", 450, 0, 38, 0.8, 176, 204, 40},
69-
{"npc_dota_neutral_custom_cave_big_horse", 750, 0, 19, 1.2, 176, 204, 40},
70-
{"npc_dota_neutral_custom_cave_big_horse", 750, 0, 19, 1.2, 176, 204, 40},
71-
{"npc_dota_neutral_custom_cave_big_horse", 750, 0, 19, 1.2, 176, 204, 40},
66+
{"npc_dota_neutral_custom_cave_tomato", 450, 0, 38, 0.8, 142, 204, 40},
67+
{"npc_dota_neutral_custom_cave_tomato", 450, 0, 38, 0.8, 142, 204, 40},
68+
{"npc_dota_neutral_custom_cave_tomato", 450, 0, 38, 0.8, 142, 204, 40},
69+
{"npc_dota_neutral_custom_cave_big_horse", 750, 0, 19, 1.2, 142, 204, 40},
70+
{"npc_dota_neutral_custom_cave_big_horse", 750, 0, 19, 1.2, 142, 204, 40},
71+
{"npc_dota_neutral_custom_cave_big_horse", 750, 0, 19, 1.2, 142, 204, 40},
7272
},
7373
multiplier = {
7474
mana = BaseMultipliers.mana(BaseCreepPowerMultiplier, _G.CAVE_ROOM_INTERVAL, CaveProgressionBuff), -- function (k) return 1 end,
@@ -84,10 +84,10 @@ CaveTypes = {
8484
[3] = { -- 3 "Draggin' it Around"
8585
{ --HP MANA DMG ARM GOLD EXP RESIST
8686
units = {
87-
{"npc_dota_neutral_custom_cave_black_drake", 900, 0, 45, 1, 264, 309, 50},
88-
{"npc_dota_neutral_custom_cave_black_drake", 900, 0, 45, 1, 264, 309, 50},
89-
{"npc_dota_neutral_custom_cave_black_drake", 900, 0, 45, 1, 264, 309, 50},
90-
{"npc_dota_neutral_custom_cave_black_drake", 900, 0, 45, 1, 264, 309, 50},
87+
{"npc_dota_neutral_custom_cave_black_drake", 900, 0, 45, 1, 212, 309, 50},
88+
{"npc_dota_neutral_custom_cave_black_drake", 900, 0, 45, 1, 212, 309, 50},
89+
{"npc_dota_neutral_custom_cave_black_drake", 900, 0, 45, 1, 212, 309, 50},
90+
{"npc_dota_neutral_custom_cave_black_drake", 900, 0, 45, 1, 212, 309, 50},
9191
},
9292
multiplier = {
9393
mana = BaseMultipliers.mana(BaseCreepPowerMultiplier, 2 * _G.CAVE_ROOM_INTERVAL, CaveProgressionBuff), -- function (k) return 1 end,
@@ -103,8 +103,8 @@ CaveTypes = {
103103
[4] = { -- 4 "Roashes Everywhere"
104104
{ --HP MANA DMG ARM GOLD EXP RESIST
105105
units = {
106-
{"npc_dota_mini_roshan", 1200, 0, 68, 1.2, 528, 614, 60},
107-
{"npc_dota_mini_roshan", 1200, 0, 68, 1.2, 528, 614, 60},
106+
{"npc_dota_mini_roshan", 1200, 0, 68, 1.2, 425, 614, 60},
107+
{"npc_dota_mini_roshan", 1200, 0, 68, 1.2, 425, 614, 60},
108108
},
109109
multiplier = {
110110
mana = BaseMultipliers.mana(BaseCreepPowerMultiplier, 3 * _G.CAVE_ROOM_INTERVAL, CaveProgressionBuff), -- function (k) return 1 end,

game/scripts/vscripts/components/creeps/creep_power.lua

+18-14
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,30 @@ if CreepPower == nil then
44
end
55

66
function CreepPower:GetPowerForMinute (minute)
7-
local multFactor = 1
8-
9-
local ExponentialGrowthOnset = {
10-
short = 40,
11-
normal = 60,
12-
long = 120
13-
}
14-
157
if minute == 0 then
168
return { 0, 1.0, 1.0, 1.0, 1.0, 1.0 * self.BootGoldFactor, 1.0 * self.numPlayersXPFactor}
179
end
1810

19-
if minute > ExponentialGrowthOnset[PointsManager:GetGameLength()] then
20-
multFactor = 1.5 ^ (minute - ExponentialGrowthOnset[PointsManager:GetGameLength()])
11+
return CreepPower:GetBasePowerForMinute(minute)
12+
end
13+
14+
function CreepPower:GetBasePowerForMinute (minute)
15+
if minute == 0 then
16+
return { 0, 1.0, 1.0, 1.0, 1.0, 1.0 * self.BootGoldFactor, 1.0 * self.numPlayersXPFactor}
2117
end
2218

23-
return CreepPower:GetBasePowerForMinute(minute, multFactor)
19+
return {
20+
minute, -- minute
21+
(0 * ((minute / 100) ^ 4) - 0 * ((minute/100) ^ 3) + 30 * ((minute/100) ^ 2) + 3 * (minute/100)) + 1, -- hp
22+
(0 * ((minute / 100) ^ 4) - 0 * ((minute/100) ^ 3) + 30 * ((minute/100) ^ 2) + 3 * (minute/100)) + 1, -- mana
23+
(0 * ((minute / 100) ^ 4) - 0 * ((minute/100) ^ 3) + 60 * ((minute/100) ^ 2) + 6 * (minute/100)) + 1, -- damage
24+
(0 * (minute / 26) ^ 2 + minute / 6) + 1, -- armor
25+
((0 * minute ^ 2 + 6*4 * minute + 7*15)/(6*15)) * self.BootGoldFactor, -- gold
26+
((9 * minute ^ 2 + 17 * minute + 607) / 607) * self.numPlayersXPFactor -- xp
27+
}
2428
end
2529

26-
function CreepPower:GetBasePowerForMinute (minute, multFactor)
30+
function CreepPower:GetBaseCavePowerForMinute (minute)
2731
if minute == 0 then
2832
return { 0, 1.0, 1.0, 1.0, 1.0, 1.0 * self.BootGoldFactor, 1.0 * self.numPlayersXPFactor}
2933
end
@@ -34,8 +38,8 @@ function CreepPower:GetBasePowerForMinute (minute, multFactor)
3438
(0 * ((minute / 100) ^ 4) - 0 * ((minute/100) ^ 3) + 30 * ((minute/100) ^ 2) + 3 * (minute/100)) + 1, -- mana
3539
(0 * ((minute / 100) ^ 4) - 0 * ((minute/100) ^ 3) + 60 * ((minute/100) ^ 2) + 6 * (minute/100)) + 1, -- damage
3640
(0 * (minute / 26) ^ 2 + minute / 6) + 1, -- armor
37-
((3 * minute ^ 2 - 5 * minute + 177)/177) * self.BootGoldFactor, -- gold
38-
((9 * minute ^ 2 + 17 * minute + 607) / 607) * self.numPlayersXPFactor * multFactor -- xp
41+
((0 * minute ^ 2 + 2 * minute + 15)/(15)) * self.BootGoldFactor, -- gold
42+
((9 * minute ^ 2 + 17 * minute + 607) / 607) * self.numPlayersXPFactor -- xp
3943
}
4044
end
4145

game/scripts/vscripts/components/creeps/creep_types.lua

+40-34
Original file line numberDiff line numberDiff line change
@@ -4,79 +4,85 @@ CreepTypes = {
44
-- 1 "easy camp"
55
{
66
{ --HP MANA DMG ARM GOLD EXP
7-
{"npc_dota_neutral_kobold", 280, 0, 10, 0.5, 20, 30}, --expected gold is 80 and XP is 91
8-
{"npc_dota_neutral_kobold_tunneler", 480, 0, 12, 1, 40, 52}
7+
{"npc_dota_neutral_kobold", 280, 0, 10, 0.5, 16, 20}, --expected gold is 56 and XP is 61
8+
{"npc_dota_neutral_kobold_tunneler", 480, 0, 12, 1, 36, 32}
99
},
1010
{
11-
{"npc_dota_neutral_kobold_taskmaster", 560, 0, 16, 1, 60, 65},
12-
{"npc_dota_neutral_kobold", 280, 0, 10, 0.5, 20, 30}
11+
{"npc_dota_neutral_kobold_taskmaster", 560, 0, 16, 1, 40, 45},
12+
{"npc_dota_neutral_kobold", 280, 0, 10, 0.5, 16, 20}
1313
},
1414
{
15-
{"npc_dota_neutral_kobold_taskmaster", 560, 0, 16, 1, 60, 65},
16-
{"npc_dota_neutral_kobold", 280, 0, 10, 0.5, 20, 30}
15+
{"npc_dota_neutral_kobold_taskmaster", 560, 0, 16, 1, 40, 45},
16+
{"npc_dota_neutral_kobold", 280, 0, 10, 0.5, 16, 20}
1717
},
1818
{
19-
{"npc_dota_neutral_ghost", 480, 0, 12, 1, 50, 46},
20-
{"npc_dota_neutral_ghost", 480, 0, 12, 1, 50, 46}
19+
{"npc_dota_neutral_ghost", 480, 0, 12, 1, 30, 31},
20+
{"npc_dota_neutral_ghost", 480, 0, 12, 1, 30, 31}
2121
}
2222
},
2323
-- 2 "medium camp"
2424
{
2525
{ --HP MANA DMG ARM GOLD EXP
26-
{"npc_dota_neutral_harpy_storm", 560, 320, 24, 1.2, 60, 118}, --expected gold is 106 and XP is 212
27-
{"npc_dota_neutral_harpy_storm", 560, 320, 24, 1.2, 60, 118},
28-
{"npc_dota_neutral_harpy_scout", 440, 0, 40, 0.7, 20, 70},
26+
{"npc_dota_neutral_harpy_storm", 560, 320, 24, 1.2, 45, 155}, --expected gold is 75 and XP is 272
27+
{"npc_dota_neutral_harpy_storm", 560, 320, 24, 1.2, 45, 155},
28+
{"npc_dota_neutral_harpy_scout", 440, 0, 40, 0.7, 14, 79},
2929
},
3030
{
31-
{"npc_dota_neutral_harpy_storm", 560, 320, 24, 1.2, 60, 118}
31+
{"npc_dota_neutral_harpy_storm", 560, 320, 24, 1.2, 45, 155}
3232
},
3333
{
34-
{"npc_dota_neutral_polar_furbolg_champion", 480, 0, 28, 1.3, 59, 106},
35-
{"npc_dota_neutral_beardude", 800, 0, 28, 1.3, 59, 106}
34+
{"npc_dota_neutral_polar_furbolg_champion", 480, 0, 28, 1.3, 38, 136},
35+
{"npc_dota_neutral_beardude", 800, 0, 28, 1.3, 38, 136}
3636
}
3737
},
3838
-- 3 "hard camp"
3939
{
4040
{ --HP MANA DMG ARM GOLD EXP
41-
{"npc_dota_neutral_custom_big_horse", 800, 400, 30, 1.5, 120, 76}, --expected gold is 186 and XP is 151
42-
{"npc_dota_neutral_custom_small_horse", 600, 240, 20, 0.8, 66, 75},
41+
{"npc_dota_neutral_custom_big_horse", 800, 400, 30, 1.5, 76, 61}, --expected gold is 113 and XP 121
42+
{"npc_dota_neutral_custom_small_horse", 600, 240, 20, 0.8, 37, 60},
4343
},
4444
{
45-
{"npc_dota_neutral_custom_big_horse", 800, 400, 30, 1.5, 120, 76},
46-
{"npc_dota_neutral_custom_small_horse", 600, 240, 20, 0.8, 66, 75},
45+
{"npc_dota_neutral_custom_big_horse", 800, 400, 30, 1.5, 76, 61},
46+
{"npc_dota_neutral_custom_small_horse", 600, 240, 20, 0.8, 37, 60},
4747
},
4848
{
49-
{"npc_dota_neutral_custom_small_pupper", 400, 160, 15, 1, 33, 39},
50-
{"npc_dota_neutral_custom_small_pupper", 400, 160, 15, 1, 33, 39},
51-
{"npc_dota_neutral_custom_big_pupper", 600, 480, 35, 2, 142, 99}
49+
{"npc_dota_neutral_custom_small_pupper", 400, 160, 15, 1, 21, 30},
50+
{"npc_dota_neutral_custom_small_pupper", 400, 160, 15, 1, 21, 30},
51+
{"npc_dota_neutral_custom_big_pupper", 600, 480, 35, 2, 85, 81}
5252
},
5353
{
54-
{"npc_dota_neutral_custom_small_pupper", 400, 160, 15, 1, 33, 39},
55-
{"npc_dota_neutral_custom_big_pupper", 600, 480, 35, 2, 142, 99}
54+
{"npc_dota_neutral_custom_small_pupper", 400, 160, 15, 1, 21, 30},
55+
{"npc_dota_neutral_custom_big_pupper", 600, 480, 35, 2, 85, 81}
5656
},
5757
{
58-
{"npc_dota_neutral_custom_small_pupper", 400, 160, 15, 1, 33, 39},
59-
{"npc_dota_neutral_custom_big_pupper", 600, 480, 35, 2, 142, 99}
58+
{"npc_dota_neutral_custom_small_pupper", 400, 160, 15, 1, 21, 30},
59+
{"npc_dota_neutral_custom_big_pupper", 600, 480, 35, 2, 85, 81}
6060
},
6161
{
62-
{"npc_dota_neutral_satyr_tickster", 350, 160, 10, 1, 47, 35},
63-
{"npc_dota_neutral_satyr_soulstealer", 450, 480, 20, 1, 62, 51},
64-
{"npc_dota_neutral_satyr_hellcaller", 550, 480, 30, 1.5, 77, 65}
62+
{"npc_dota_neutral_satyr_tickster", 350, 160, 10, 1, 25, 27},
63+
{"npc_dota_neutral_satyr_soulstealer", 450, 480, 20, 1, 38, 40},
64+
{"npc_dota_neutral_satyr_hellcaller", 550, 480, 30, 1.5, 51, 53}
6565
}
6666
},
6767
-- 4 "ancient camp"
6868
{
6969
{ --HP MANA DMG ARM GOLD EXP
70-
{"npc_dota_neutral_granite_golem", 1400, 0, 50, 2, 225, 106}, --expected gold is 451 and XP is 212
71-
{"npc_dota_neutral_rock_golem", 1000, 0, 40, 1, 113, 53},
72-
{"npc_dota_neutral_rock_golem", 1000, 0, 40, 1, 113, 53}
70+
{"npc_dota_neutral_granite_golem", 1400, 0, 50, 2, 122, 75}, --expected gold is 244 and XP is 151
71+
{"npc_dota_neutral_rock_golem", 1000, 0, 40, 1, 61, 38},
72+
{"npc_dota_neutral_rock_golem", 1000, 0, 40, 1, 61, 38}
7373
},
7474
{
75-
{"npc_dota_neutral_prowler_acolyte", 900, 0, 30, 1, 151, 71},
76-
{"npc_dota_neutral_prowler_shaman", 1200, 0, 60, 2, 300, 141}
75+
{"npc_dota_neutral_prowler_acolyte", 900, 0, 30, 1, 82, 51},
76+
{"npc_dota_neutral_prowler_shaman", 1200, 0, 60, 2, 162, 100}
7777
},
7878
{
79-
{"npc_dota_neutral_custom_black_dragon", 1700, 0, 80, 3, 451, 212}
79+
{"npc_dota_neutral_custom_black_dragon", 1700, 0, 80, 3, 244, 151}
80+
}
81+
},
82+
-- 5 "solo camp"
83+
{
84+
{
85+
{"npc_dota_neutral_black_drake", 1500, 0, 70, 3, 131, 212} --expected gold is 131 and XP is 212
8086
}
8187
}
8288
}

0 commit comments

Comments
 (0)