//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(); }