summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 73bddae64..7ce75dac2 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -2341,20 +2341,26 @@ int status_calc_homunculus(struct homun_data *hd, int first)
status->int_ = hom->int_ / 10;
status->luk = hom->luk / 10;
- status->def_ele = hd->homunculusDB->element ; //[orn]
- status->ele_lv = 1;
- status->race = hd->homunculusDB->race ; //[orn]
- status->size = hd->homunculusDB->size ; //[orn]
- status->rhw.range = 1 + status->size; //[orn]
- status->mode = MD_CANMOVE|MD_CANATTACK|MD_ASSIST|MD_AGGRESSIVE|MD_CASTSENSOR; //[orn]
- status->speed = DEFAULT_WALK_SPEED;
+ if (first) { //[orn]
+ status->def_ele = hd->homunculusDB->element;
+ status->ele_lv = 1;
+ status->race = hd->homunculusDB->race ;
+ status->size = hd->homunculusDB->size ;
+ status->rhw.range = 1 + status->size;
+ status->mode = MD_CANMOVE|MD_CANATTACK|MD_ASSIST|MD_AGGRESSIVE|MD_CASTSENSOR;
+ if (battle_config.slaves_inherit_speed && sd)
+ status->speed = status_get_speed(&sd->bl);
+ else
+ status->speed = DEFAULT_WALK_SPEED;
+ status->hp = 1;
+ status->sp = 1;
+ }
skill = hom->level/10 + status->vit/5;
status->def = cap_value(skill, 0, 99);
+
skill = hom->level/10 + status->int_/5;
status->mdef = cap_value(skill, 0, 99);
- status->hp = 1;
- status->sp = 1;
status->max_hp = hom->max_hp ;
status->max_sp = hom->max_sp ;