Exemplo n.º 1
0
    EntityPrefabRoot CreatePrefab(EntityRef entityRef, EntityPrefab prefab, Transform2D *transform)
    {
        var asset = UnityDB.FindAsset <EntityPrefabAsset>(prefab.Id);

        if (asset)
        {
            EntityPrefabRoot instance;

            instance = transform == null?Instantiate(asset.Prefab) : Instantiate(asset.Prefab, transform->Position.ToUnityVector2(), transform->Rotation.ToUnityQuaternion());

            instance.AssetGuid = prefab.Guid;
            instance.EntityRef = entityRef;

            if (transform != null)
            {
                instance.transform.position = transform->Position.ToUnityVector3();
                instance.transform.rotation = transform->Rotation.ToUnityQuaternion();
            }

            // add to lookup
            _activePrefabs.Add(entityRef, instance);

            // return instance
            return(instance);
        }

        return(null);
    }
Exemplo n.º 2
0
        void Start()
        {
            // init runtime
            QuantumRunner.Init();

            // init database
            UnityDB.Init();
        }
Exemplo n.º 3
0
        public override void OnShowScreen(bool first)
        {
            _started = false;

            MapSelect.ClearOptions();
            MapSelect.AddOptions(UnityDB.AllOf <MapAsset>().Select(x => x.Settings.Scene).ToList());
            MapSelect.value = 0;
        }
Exemplo n.º 4
0
    void OnDamage(EventCharacterDamage e)
    {
        var c    = QuantumGame.Frame.GetCharacter(e.Character);
        var spec = UnityDB.FindAsset <CharacterSpecAsset>(c->CharacterSpec) as MageSpecAsset;

        if (spec != null)
        {
            Debug.Log("Damage from mage: " + e.Damage);
        }
        else
        {
            Debug.Log("Damage otherwise: " + e.Damage);
        }
        Debug.Log("Hit for " + e.Damage + " to " + e.Character.ToString());
    }
Exemplo n.º 5
0
    public QuantumGame(Quantum.RuntimeConfig runtimeConfig)
    {
        // init debug
        QuantumRunner.Init();

        // initialize db
        UnityDB.Init();

        _runtimeConfig    = RuntimeConfig = runtimeConfig;
        _simulationConfig = SimulationConfig = SimulationConfigAsset.Instance.Configuration;
        _systems          = Quantum.SystemSetup.CreateSystems(_runtimeConfig, _simulationConfig);

        IsReplay         = runtimeConfig.GameMode == DeterministicGameMode.Replay;
        IsReplayFinished = false;

        // set system runtime indices
        for (Int32 i = 0; i < _systems.Length; ++i)
        {
            _systems[i].RuntimeIndex = i;
        }
    }
Exemplo n.º 6
0
    public void Animate(Quantum.Animator *a)
    {
        var asset = UnityDB.FindAsset <AnimatorGraphAsset>(a->id);

        if (asset)
        {
            // load clips
            LoadClips(asset.clips);

            // clear old blend data
            _blendData.Clear();

            // calculate blend data
            asset.Settings.GenerateBlendList(a, _blendData);

            // update animation state
            SetAnimationData(asset.Settings, _blendData);

            //      Debug.Log(Quantum.Animator.GetFixedPoint(a, "Forward") +" "+ Quantum.Animator.GetFixedPoint(a, "Turn"));
            //      Debug.Log(Quantum.Animator.GetBoolean(a, "Dead") +" "+ Quantum.Animator.GetFixedPoint(a, "Speed"));
            //      Debug.Log(a->current_state_id+" "+a->from_state_id+" "+a->to_state_id+" "+a->transition_time+" "+a->transition_index);
        }
    }
Exemplo n.º 7
0
        void CheckForGameStart()
        {
            if (_started)
            {
                return;
            }

            var start = false;
            var map   = default(String);

            if (TryGetRoomProperty <Boolean>("START", out start) && TryGetRoomProperty <String>("MAP", out map))
            {
                if (start && String.IsNullOrEmpty(map) == false)
                {
                    _started = true;

                    RuntimeConfig config;
                    config         = new RuntimeConfig();
                    config.Players = new RuntimePlayer[PhotonNetwork.room.MaxPlayers];

                    for (Int32 i = 0; i < config.Players.Length; ++i)
                    {
                        config.Players[i] = new RuntimePlayer();
                        config.Players[i].CharacterSpec.Guid = "mage";
                    }

                    config.Map.Guid = UnityDB.AllOf <MapAsset>().First(x => x.Settings.Scene == map).Settings.Guid;
                    config.GameMode = Photon.Deterministic.DeterministicGameMode.Multiplayer;

                    QuantumRunner.StartGame(config);

                    UIRoom.HideScreen();
                    UILeaveGame.ShowScreen();
                }
            }
        }