Пример #1
0
 public void Attack(StalkerBehaviour at)
 {
     if (!IsInvoking("AttackEnd"))
     {
         Invoke("AttackEnd", attackDeltaTime);
     }
 }
Пример #2
0
    //

    private void Start()
    {
        StalkerBehaviour s = null;

        if (to_save_data.player)
        {
            s = gameObject.AddComponent <StalkerControl> ();
        }
        else
        {
            s = gameObject.AddComponent <StalkerAI> ();
        }

        if (s)
        {
            anims            = GetComponent <Animator> ();
            s.type           = type;
            s.to_save_data   = to_save_data;
            s.moveSpeed      = moveSpeed;
            s.leftLegVector  = leftLegVector;
            s.rightLegVector = rightLegVector;
            s.leftFoot       = anims.GetBoneTransform(HumanBodyBones.LeftFoot);
            s.rightFoot      = anims.GetBoneTransform(HumanBodyBones.RightFoot);
        }

        Destroy(this);
    }
Пример #3
0
    public void Drop(int index, Vector3 position, Quaternion rotation)
    {
        GameObject obj = (GameObject)Resources.Load("ItemsObjects/Item_" + slots[index].itemID);

        if (obj)
        {
            StalkerBehaviour.Instantiate(obj, position, rotation);
        }
        RemoveSlot(index);
    }
Пример #4
0
    public void SetNodeCorner(DialogNode node, RectTransform buttonsParent, Text actor, StalkerBehaviour stalker, GameObject bpo)
    {
        AudioClip c = node.actorReplic.sourceClip;

        bpo.SetActive(false);
        dialogCharacter = stalker;
        TextSetter.SetTextByTime(actor, node.actorReplic.sourceText, c.length, delegate {
            PrepareNode(node, buttonsParent, actor, stalker, bpo);
        });
        stalker.PlaySound(c, GetVoice(node.actorReplic.actor));
    }
Пример #5
0
 private void Start()
 {
     StalkerStart();
     camera_main            = Camera.main;
     cam_trans              = camera_main.transform;
     cam_parent_trans       = cam_trans.parent;
     camera_euler           = Vector3.right * to_save_data.euler_x;
     TouchController.crouch = to_save_data.crouch;
     player = this;
     CameraDelegateData.onPreRender = delegate {
         CameraMotor();
     };
 }
Пример #6
0
    public bool ToDialogWithNearest(bool enterToDialog)
    {
        StalkerBehaviour nearest = null;

        if (StalkerControl.player)
        {
            IEnumerable <StalkerBehaviour> search = StalkerBehaviour.behaviours.Where((StalkerBehaviour arg) => StalkerControl.player.IsNearStalker(arg) && arg != StalkerControl.player);
            search = search.OrderBy((StalkerBehaviour arg) => (transform.position - arg.trans.position).magnitude);
            if (search.ToArray().Length > 0)
            {
                nearest = search.ToArray() [0];
                if (enterToDialog)
                {
                    ToDialog(nearest);
                }
            }
        }
        return(nearest != null);
    }
Пример #7
0
    public void SayReplic(DialogButton button, StalkerBehaviour stalker, RectTransform bp, Text actor, GameObject bpo)
    {
        StalkerControl.player.PlaySound(button.replic.sourceClip, GetVoice(button.replic.actor));

        AudioClip c = button.replic.sourceClip;

        bpo.SetActive(false);
        TextSetter.SetTextByTime(actor, button.replic.sourceText, c.length, delegate {
            if (button.nextNodeIndex < 0)
            {
                CloseDialog();
            }
            else
            {
                currentDialogIndex = button.nextNodeIndex;
                SetNodeCorner(currentNode, bp, actor, stalker, bpo);
            }
        });
    }
Пример #8
0
    private void ApplyGame(Game game)
    {
        GameObject stalker_prefab = (GameObject)Resources.Load("Prefabs/Stalker");

        StalkerBehaviour[] stalkers = StalkerBehaviour.FindObjectsOfType <StalkerBehaviour> ();
        for (int i = 0; i < stalkers.Length; i++)
        {
            Destroy(stalkers[i].gameObject);
        }
        for (int g = 0; g < game.groups.Length; g++)
        {
            for (int s = 0; s < game.groups[g].stalkers.Length; s++)
            {
                Instantiate(stalker_prefab).GetComponent <StalkerBehaviour>().to_save_data = game.groups[g].stalkers[s];
            }
        }
        for (int i = 0; i < game.items.Length; i++)
        {
            GameObject pref = (GameObject)Resources.Load("ItemsObjects/Item_" + game.items[i].id);
            Instantiate(pref, game.items[i].position, Quaternion.identity);
        }
    }
Пример #9
0
    public void ToDialog(StalkerBehaviour with)
    {
        if (with.to_save_data.dialog.Length > 0)
        {
            bool hasData = true;
            switch (with.to_save_data.dialog)
            {
            case "Osobist3":
                currentDialogSystem = DialogSystem.osobist3;
                break;

            default:
                hasData = false;
                break;
            }

            if (hasData)
            {
                currentDialogSystem.StartDialog();
                currentDialogSystem.SetNodeCorner(currentDialogSystem.currentNode, dialogButtonsParent, actor, with, dialogScrollSys);
            }
        }
    }
Пример #10
0
 private void SinhroniseView()
 {
     settings_mask.anchoredPosition = Vector3.up * (settings_mask.sizeDelta.y * settings_scroll.value + settings_pos);
     load_mask.anchoredPosition     = Vector3.up * (load_mask.sizeDelta.y * load_scroll.value + load_pos);
     new_mask.anchoredPosition      = Vector3.up * (new_mask.sizeDelta.y * new_scroll.value + new_pos);
     if (runtime)
     {
         dialogEnterButton.SetActive(ToDialogWithNearest(false));
         if (currentDialogSystem != null && StalkerControl.player && StalkerControl.player.trans && currentDialogSystem.dialogCharacter)
         {
             StalkerBehaviour with = currentDialogSystem.dialogCharacter;
             StalkerControl.player.SafetyLookAt((with.trans.position - StalkerControl.player.trans.position).normalized);
             with.SafetyLookAt((StalkerControl.player.trans.position - with.trans.position).normalized);
         }
     }
     if (memory)
     {
         memory.text = "Используется память : " + MemoryUsed();
     }
     if (menu_state == MenuState.Dialog)
     {
     }
 }
Пример #11
0
 private void Update()
 {
     if (beh)
     {
         if (lastLength != inv.slots.Length || inv.haveToRefresh)
         {
             ReloadInventory();
             inv.haveToRefresh = false;
         }
         if (!addedStart && Game.gt == Game.GameType.NewGame)
         {
             inv.AddClearItem(0);
             inv.AddClearItem(1);
             inv.AddClearItem(2);
             inv.AddClearItem(3);
             Debug.Log("Added");
             addedStart = true;
         }
     }
     else
     {
         beh = StalkerControl.player;
     }
 }
Пример #12
0
    private Game CreateFromGame()
    {
        Game g = new Game();

        g.groups = new GroupClass[2];

        for (int i = 0; i < g.groups.Length; i++)
        {
            g.groups[i] = new GroupClass();

            g.groups[i].group = (ToSaveData.Group)i;
            List <ToSaveData>  tsd      = new List <ToSaveData>();
            StalkerBehaviour[] stalkers = StalkerBehaviour.FindObjectsOfType <StalkerBehaviour> ();
            for (int s = 0; s < stalkers.Length; s++)
            {
                if (stalkers[s].to_save_data.group == g.groups[i].group)
                {
                    tsd.Add(stalkers[s].to_save_data);
                }
            }
            g.groups[i].stalkers = tsd.ToArray();
        }

        ItemObject[] items = FindObjectsOfType <ItemObject> ();

        List <ItemSavable> savs = new List <ItemSavable> ();

        for (int i = 0; i < items.Length; i++)
        {
            savs.Add(items[i].sav);
        }

        g.items = savs.ToArray();

        return(g);
    }
Пример #13
0
 private void Start()
 {
     beh = StalkerControl.player;
 }
Пример #14
0
 public bool MayAttack(StalkerBehaviour who, StalkerBehaviour at)
 {
     return(true);
 }
Пример #15
0
 public bool IsNearStalker(StalkerBehaviour stalker)
 {
     return((stalker.trans.position - trans.position).magnitude < 2);
 }
Пример #16
0
    public void PrepareNode(DialogNode node, RectTransform buttonsParent, Text actor, StalkerBehaviour stalker, GameObject bpo)
    {
        bpo.SetActive(true);

        Button[] bt = buttonsParent.GetComponentsInChildren <Button> ();

        foreach (var b in bt)
        {
            GameObject.Destroy(b.gameObject);
        }

        if (node.playerReplics.Length < 1)
        {
            CloseDialog();
            return;
        }

        GameObject buttonPrefab = Resources.Load <GameObject> ("Prefabs/DialogSlot");

        int collumns = 2;

        if (node.playerReplics.Length < 2)
        {
            collumns = 1;
        }

        TextSetter.SetText(actor, node.actorReplic.sourceText);

        float[] sizes = new float[collumns];

        for (int i = 0; i < node.playerReplics.Length; i++)
        {
            int           c     = i % collumns;
            RectTransform trans = GameObject.Instantiate(buttonPrefab, buttonsParent).GetComponent <RectTransform> ();
            trans.anchoredPosition = new Vector2((buttonsParent.rect.width / collumns) * c, sizes [c]);
            trans.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, (buttonsParent.rect.width / collumns));
            Text t = trans.GetComponentInChildren <Text> ();
            TextSetter.SetText(t, node.playerReplics [i].replic.shortText);
            trans.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, t.rectTransform.rect.height + 30);
            sizes [c] += trans.rect.height;
            DialogButton cur = node.playerReplics [i];
            trans.GetComponent <Button> ().onClick.AddListener(delegate {
                SayReplic(cur, stalker, buttonsParent, actor, bpo);
            });
        }

        buttonsParent.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, sizes.OrderByDescending((float arg) => arg).ToArray() [0]);
    }