public void CreateBrokenBonusBox(BonusTakenEvent e, BonusWithResourceNode bonus, [JoinAll] SingleNode <BonusClientConfigComponent> bonusConfig) { Transform transform = bonus.bonusBoxInstance.BonusBoxInstance.transform; GetInstanceFromPoolEvent eventInstance = new GetInstanceFromPoolEvent { Prefab = bonus.bonusBoxInstance.BonusBoxInstance.GetComponent <BrokenBonusBoxBehavior>().BrokenBonusGameObject }; base.ScheduleEvent(eventInstance, bonus); Transform instance = eventInstance.Instance; GameObject gameObject = instance.gameObject; instance.position = transform.position; instance.rotation = transform.rotation; Material[] allMaterials = MaterialAlphaUtils.GetAllMaterials(gameObject); allMaterials.SetOverrideTag("RenderType", "Transparent"); Entity entity = base.CreateEntity("brokenBonusBox"); entity.AddComponent(new MaterialArrayComponent(allMaterials)); entity.AddComponent(new BrokenBonusBoxInstanceComponent(gameObject)); entity.AddComponent <BonusTakingStateComponent>(); entity.AddComponent(new LocalDurationComponent(bonusConfig.component.disappearingDuration)); gameObject.SetActive(true); }
public void FoldParachute(BonusTakenEvent e, BonusWithParachuteNode bonus) { bonus.Entity.AddComponent <BonusParachuteFoldingStateComponent>(); }
public void DestroyBonusBox(BonusTakenEvent e, SingleNode <BonusBoxInstanceComponent> bonus) { bonus.component.BonusBoxInstance.RecycleObject(); }