summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--src/map/battle.c2
-rw-r--r--src/map/skill.c20
3 files changed, 15 insertions, 9 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index d3b1252ed..6e84bd142 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/22
+ * Some corrections to make Tatami Gaeshi work correctly. [Skotlex]
+ * Fixed SBR44 doing 100% more damage than it should. [Skotlex]
* Some more work on the splash skill code. Now splash-damaged enemies
should show no animation at all, just the damage-number, while only the
targetted character should still display the full skill animation.
diff --git a/src/map/battle.c b/src/map/battle.c
index d613b925b..0c417243a 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -1555,7 +1555,7 @@ static struct Damage battle_calc_weapon_attack(
skillratio += 10+110*skill_lv;
break;
case HFLI_SBR44: //[orn]
- skillratio += 100 * skill_lv ;
+ skillratio += 100 *(skill_lv-1);
}
ATK_RATE(skillratio);
diff --git a/src/map/skill.c b/src/map/skill.c
index bc8408669..bfc4c15fb 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -6774,19 +6774,15 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid,
unit->bl.x,unit->bl.y,group->bl_flag,&unit->bl,gettick(),1);
}
}
- if (skillid == NJ_TATAMIGAESHI)
- { //Disable it, since it should do instant damage
- //(which was done in the map_foreachincell call up there) [Skotlex]
- group->target_flag=BCT_NOONE;
- group->bl_flag= 0;
- }
if (!group->alive_count)
{ //No cells? Something that was blocked completely by Land Protector?
skill_delunitgroup(src, group);
return NULL;
}
-
+ if (skillid == NJ_TATAMIGAESHI) //Store number of tiles.
+ group->val1 = group->alive_count;
+
return group;
}
@@ -6915,7 +6911,6 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
src->limit = DIFF_TICK(tick+700,sg->tick);
break;
}
-
return skillid;
}
@@ -9997,6 +9992,15 @@ int skill_unit_timer_sub (struct block_list *bl, va_list ap)
unit->val1 -= 5;
if(unit->val1 <= 0 && unit->limit + group->tick > tick + 700)
unit->limit = DIFF_TICK(tick+700,group->tick);
+ } else
+ if (group->unit_id == UNT_TATAMIGAESHI && unit->range>=0)
+ { //Disable processed cell.
+ unit->range = -1;
+ if (--group->val1 <= 0)
+ { //All tiles were processed, disable skill.
+ group->target_flag=BCT_NOONE;
+ group->bl_flag= 0;
+ }
}
return 0;