Exemple #1
0
        public unsafe void DroneMovement(FixedUpdateEvent e, DroneNode drone)
        {
            DroneOwnerComponent      droneOwner      = drone.droneOwner;
            Rigidbody                body            = drone.rigidbody.Rigidbody;
            DroneMoveConfigComponent droneMoveConfig = drone.droneMoveConfig;

            if (droneOwner.Incarnation.Alive && droneOwner.Rigidbody)
            {
                this.ApplyMovingForce(body, droneMoveConfig, droneOwner);
            }
            Rigidbody rigidbody = drone.rigidbody.Rigidbody;

            this.ApplyStabilization(rigidbody);
            Rigidbody rigidbody3 = null;

            if (drone.Entity.HasComponent <UnitTargetComponent>())
            {
                Entity target = drone.Entity.GetComponent <UnitTargetComponent>().Target;
                if (target.HasComponent <RigidbodyComponent>())
                {
                    rigidbody3 = target.GetComponent <RigidbodyComponent>().Rigidbody;
                }
            }
            if (rigidbody3 != null)
            {
                Vector3  position   = rigidbody3.position;
                Vector3 *vectorPtr1 = &position;
                vectorPtr1->y += 0.5f;
                this.ApplyTargetingForce(rigidbody, (position - rigidbody.position).normalized);
            }
            else if (droneOwner.Incarnation.Alive && droneOwner.Rigidbody)
            {
                this.ApplyTargetingForce(rigidbody, (droneOwner.Rigidbody.transform.forward - (Vector3.up * 0.5f)).normalized);
            }
        }
        public void InitDroneWeapon(NodeAddedEvent e, [Combine] DroneNode drone, [JoinByUnit] SingleNode <WeaponComponent> weapon, [JoinAll, Context] SingleNode <MapInstanceComponent> map)
        {
            MuzzlePointMarkerComponent componentInChildren = drone.rigidbody.Rigidbody.GetComponentInChildren <MuzzlePointMarkerComponent>();

            componentInChildren.gameObject.GetComponent <EntityBehaviour>().BuildEntity(weapon.Entity);
            weapon.Entity.AddComponent(new WeaponInstanceComponent(componentInChildren.gameObject));
            weapon.Entity.AddComponent(new TargetCollectorComponent(new TargetCollector(drone.Entity), new TargetValidator(drone.Entity)));
        }