protected override void PostInitializeComponent() { Entity owner = GetOwnerEntity(); PositionComponent position_component = owner.GetComponent(PositionComponent.ID) as PositionComponent; if (position_component == null) { return; } EffectManager effect_manager = GetLogicWorld().GetEffectManager(); if (m_enter_generator_cfgid > 0) { m_enter_generator = effect_manager.CreateGenerator(m_enter_generator_cfgid, owner); } if (m_period_generator_cfgid > 0) { m_period_generator = effect_manager.CreateGenerator(m_period_generator_cfgid, owner); } m_region = GetLogicWorld().GetRegionCallbackManager().CreateRegion(); m_region.Construct(this, owner); m_region.SetUpdateInterval(m_region_update_interval); m_region.SetTargetGatheringParam(m_target_gathering_param); m_region.Activate(); if (m_period_generator != null) { m_task = LogicTask.Create <ComponentCommonTask>(); m_task.Construct(this); var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_task, GetCurrentTime(), m_period, m_period); } }
public void Impact() { m_remain_attack_cnt = m_combo_attack_cnt; if (m_combo_type_crc == ComboType_Time) { CreateOneObject(0); if (m_combo_attack_cnt > 1) { if (m_task == null) { m_task = LogicTask.Create <ComponentCommonTask>(); m_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_task, GetCurrentTime(), m_combo_interval, m_combo_interval); } } else if (m_combo_type_crc == ComboType_Angle || m_combo_type_crc == ComboType_Circle) { for (int i = 0; i < m_combo_attack_cnt; ++i) { CreateOneObject(i); } } #if COMBAT_CLIENT if (m_render_effect_cfgid > 0) { PlayRenderEffectMessage msg = RenderMessage.Create <PlayRenderEffectMessage>(); msg.ConstructAsPlay(GetOwnerEntityID(), m_render_effect_cfgid, FixPoint.MinusOne); GetLogicWorld().AddRenderMessage(msg); } #endif }
protected override void OnDestruct() { if (m_die_task != null) { m_die_task.Cancel(); LogicTask.Recycle(m_die_task); m_die_task = null; } EffectManager effect_manager = GetLogicWorld().GetEffectManager(); if (m_born_generator != null) { effect_manager.DestroyGenerator(m_born_generator.ID, GetOwnerEntityID()); m_born_generator = null; } if (m_die_generator != null) { effect_manager.DestroyGenerator(m_die_generator.ID, GetOwnerEntityID()); m_die_generator = null; } if (m_killer_generator != null) { effect_manager.DestroyGenerator(m_killer_generator.ID, GetOwnerEntityID()); m_killer_generator = null; } }
protected override void OnDestruct() { EffectManager effect_manager = GetLogicWorld().GetEffectManager(); if (m_enter_generator != null) { effect_manager.DestroyGenerator(m_enter_generator.ID, GetOwnerEntityID()); m_enter_generator = null; } if (m_period_generator != null) { effect_manager.DestroyGenerator(m_period_generator.ID, GetOwnerEntityID()); m_period_generator = null; } if (m_region != null) { m_region.Destruct(); m_region = null; } if (m_task != null) { m_task.Cancel(); LogicTask.Recycle(m_task); m_task = null; } }
public override void Inflict(FixPoint start_time) { if (m_generator == null) { return; } if (m_delay_time == FixPoint.Zero) { Impact(); } else { if (m_delay_task == null) { m_delay_task = LogicTask.Create <ComponentCommonTask>(); m_delay_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_delay_task, GetCurrentTime(), m_delay_time); } #if COMBAT_CLIENT if (m_render_effect_cfgid > 0 && m_render_delay_time > FixPoint.Zero) { if (m_render_delay_task == null) { m_render_delay_task = LogicTask.Create <PlayRenderEffectTask>(); m_render_delay_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_render_delay_task, GetCurrentTime(), m_render_delay_time); } #endif }
protected override void OnDestruct() { if (m_task != null) { m_task.Cancel(); LogicTask.Recycle(m_task); m_task = null; } }
protected override void OnDestruct() { DeleteLocomotorSpeedRateTask(); if (m_task != null) { m_task.Cancel(); LogicTask.Recycle(m_task); m_task = null; } }
void CancelTask() { if (m_combo_task == null) { return; } m_combo_task.Cancel(); LogicTask.Recycle(m_combo_task); m_combo_task = null; }
protected override void OnDestruct() { SignalListenerContext.Recycle(m_listener_context); m_listener_context = null; if (m_task != null) { m_task.Cancel(); LogicTask.Recycle(m_task); m_task = null; } }
void Schedule() { if (m_task == null) { m_task = LogicTask.Create <ComponentCommonTask>(); m_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_task, GetCurrentTime(), FixPoint.One, FixPoint.One); }
protected override void OnDestruct() { RecyclableObject.Recycle(m_damage_amount); m_damage_amount = null; if (m_period_task != null) { m_period_task.Cancel(); LogicTask.Recycle(m_period_task); m_period_task = null; } }
public void ScheduleTargeting(FixPoint delay) { if (m_task == null) { m_task = LogicTask.Create <ComponentCommonTask>(); m_task.Construct(this); } LogicWorld logic_world = GetLogicWorld(); var task_scheduler = logic_world.GetTaskScheduler(); task_scheduler.Schedule(m_task, logic_world.GetCurrentTime(), delay); }
public override void Apply() { ApplyDamage(); if (m_period > FixPoint.Zero) { if (m_period_task == null) { m_period_task = LogicTask.Create <ComponentCommonTask>(); m_period_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_period_task, GetCurrentTime(), m_period, m_period); } }
protected override void OnDestruct() { m_targeting_component = null; SignalListenerContext.Recycle(m_listener_context); m_listener_context = null; if (m_task != null) { m_task.Cancel(); LogicTask.Recycle(m_task); m_task = null; } ClearTargets(); m_current_enemy = null; }
public override void Apply() { m_remain_count = m_object_count; CreateOneObject(); if (m_object_count > 1 || m_object_count == -1) { if (m_task == null) { m_task = LogicTask.Create <ComponentCommonTask>(); m_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_task, GetCurrentTime(), m_interval, m_interval); } }
protected override void OnDestruct() { if (m_generator != null) { GetLogicWorld().GetEffectManager().DestroyGenerator(m_generator.ID, GetOwnerEntityID()); m_generator = null; } if (m_task != null) { m_task.Cancel(); LogicTask.Recycle(m_task); m_task = null; } }
void StartMoving(bool from_command = true) { if (m_task == null) { m_task = LogicTask.Create <ComponentCommonTask>(); m_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_task, GetCurrentTime(), LOGIC_UPDATE_INTERVAL, LOGIC_UPDATE_INTERVAL); if (!m_is_moving) { m_is_moving = true; OnMovementStarted(from_command); } }
protected override void OnActionEnter() { if (m_collision_target_generator_cfgid > 0 && m_collision_target_generator == null) { SkillComponent skill_component = m_context.GetData <SkillComponent>(BTContextKey.OwnerSkillComponent); m_collision_target_generator = GetLogicWorld().GetEffectManager().CreateGenerator(m_collision_target_generator_cfgid, skill_component.GetOwnerEntity()); if (m_collision_target_generator != null && m_collided_targets == null) { m_collided_targets = new List <int>(); } } if (m_task == null) { m_task = LogicTask.Create <ComponentCommonTask>(); m_task.Construct(this); } }
public override void Inflict(FixPoint start_time) { if (m_delay_time == FixPoint.Zero) { RealInflict(); } else { if (m_delay_task == null) { m_delay_task = LogicTask.Create <ComponentCommonTask>(); m_delay_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_delay_task, GetCurrentTime(), m_delay_time); } }
public void SetLifeTime(FixPoint life_time) { m_life_time = life_time; if (m_die_task != null) { m_die_task.Cancel(); } if (m_life_time > FixPoint.Zero) { if (m_die_task == null) { m_die_task = LogicTask.Create <ComponentCommonTask>(); m_die_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_die_task, GetCurrentTime(), m_life_time); } }
protected override void PostInitializeComponent() { ResetSpawnAreaRange(); if (m_update_interval < FixPoint.One) { m_update_interval = FixPoint.One; } m_listener_context = SignalListenerContext.CreateForEntityComponent(GetLogicWorld().GenerateSignalListenerID(), ParentObject.ID, m_component_type_id); m_task = LogicTask.Create <ComponentCommonTask>(); m_task.Construct(this); var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_task, GetCurrentTime(), m_update_interval, m_update_interval); for (int i = 0; i < m_init_count; ++i) { SpawnOneObject(); } }
public override void Apply() { if (m_generator == null) { return; } m_remain_count = m_combo_count; ApplyOnce(); if (m_combo_count > 1 || m_combo_count == -1) { if (m_combo_task == null) { m_combo_task = LogicTask.Create <ComponentCommonTask>(); m_combo_task.Construct(this); } var schedeler = GetLogicWorld().GetTaskScheduler(); schedeler.Schedule(m_combo_task, GetCurrentTime(), m_combo_interval, m_combo_interval); } }
protected override void ResetRuntimeData() { if (m_collision_target_generator != null) { SkillComponent skill_component = m_context.GetData <SkillComponent>(BTContextKey.OwnerSkillComponent); GetLogicWorld().GetEffectManager().DestroyGenerator(m_collision_target_generator.ID, skill_component.GetOwnerEntityID()); m_collision_target_generator = null; } if (m_collided_targets != null) { m_collided_targets.Clear(); } if (m_task != null) { m_task.Cancel(); LogicTask.Recycle(m_task); m_task = null; } m_remain_time = FixPoint.Zero; }