//Items public bool add_item(Item.Item_name name) { if (isPlayer) { if (!Utility.unit_at_home()) { return(false); } if (!host.check_gold(GameSceneConsts.item_prices [(int)name])) { return(false); } } for (int i = 0; i < GameSceneConsts.max_item; ++i) { if (items [i] == null) { host.change_gold(-GameSceneConsts.item_prices [(int)name]); items [i] = gameObject.AddComponent <Item>(); items [i].init(name); base_u_stats += items[i].stats_add_base; base_u_stats_mult += items[i].stats_mult_base; bonus_u_stats += items[i].stats_add; bonus_u_stats += items[i].stats_mult; update_all_stats(); return(true); } } return(false); }
public void init_post() { runtime_u_stats = base_u_stats; update_attack_speed(); //update_movement_speed ();//called from outside autoAtkTimer = new Utility.Timer(runtime_u_stats.attack_speed); autoAtkTimer.start_timer(); init_AtkTarget(); init_resources(); //netUnit = transform.parent.GetComponent<NetworkUnit>(); //netUnit.init(runtime_u_stats.max_hp, runtime_u_stats.max_mana); }
//update stats public virtual void update_all_stats() { runtime_u_stats = (base_u_stats * base_u_stats_mult + bonus_u_stats) * bonus_u_stats_mult; //print ("hululu"); //print (base_u_stats.max_hp); //print (base_u_stats_mult.max_hp); //print (bonus_u_stats.max_hp); //print (bonus_u_stats_mult.max_hp); //print ("galulu"); update_attack_speed(); update_movement_speed(); }
//call this before actual init(); public void init_pre() { netID = transform.parent.gameObject.GetComponent <NetworkIdentity> (); self_col = GetComponent <Collider> (); cur_target_obj = null; status = new List <Status> (); flags = new unit_flags(); flags.init(); if ((!netID.isLocalPlayer) && (isPlayer)) { return; } //stats base_u_stats = new unit_stats(); base_u_stats.init(); base_u_stats_mult = new unit_stats(); base_u_stats_mult.init_to_1(); u_stats_growth = new unit_stats(); u_stats_growth.init(); bonus_u_stats = new unit_stats(); bonus_u_stats.init(); bonus_u_stats_mult = new unit_stats(); bonus_u_stats_mult.init_to_1(); inCombat_timer = new Utility.Timer(GameSceneConsts.in_combat_time); regen_timer = new Utility.Timer(GameSceneConsts.regen_interval); regen_timer.start_timer(); items = new Item[GameSceneConsts.max_item + GameSceneConsts.max_supp_item]; for (int i = 0; i < items.Length; ++i) { items [i] = null; } Onhit_dmg = new Types.damage_combo(); Onhit_dmg.init(); recent_dmg_receive = new Types.damage_combo(); recent_dmg_receive.init(); }