Example #1
0
 void Awake()
 {
     // Setting up the references.
     player       = GameObject.FindGameObjectWithTag("Player");
     playerHealth = player.GetComponent <PlayerHealth> ();
     playerEvent  = player.GetComponent <CharacterEvent> ();
     audioSource  = GetComponent <AudioSource> ();
 }
Example #2
0
 // Use this for initialization
 void Awake()
 {
     rb          = GetComponent <Rigidbody> ();
     anim        = GetComponent <Animator> ();
     target      = GameObject.FindGameObjectWithTag("Player").transform;
     playerEvent = target.GetComponent <CharacterEvent> ();
     world       = GameObject.FindGameObjectWithTag("World").GetComponent <World> ();
 }
    public virtual void OnEventRaised(Character value)
    {
        CharacterEvent characterEvent = gameEvent as CharacterEvent;

        if (characterEvent)
        {
            characterResponse.Invoke(value);
        }
    }
Example #4
0
 protected void Activate(CharacterEvent data)
 {
     ability = ((HitEvent)data).Source.Ability;
     Team = ((HitEvent)data).Source.Owner.GetComponent<Target>().Team;
     ColorChanger cc = ((HitEvent)data).Source.Owner.GetComponent<ColorChanger>();
     colorChanger.SetColor(cc.color);
     spawn.Enable(Team, lane.Enumerator(), cc.color);
     GetComponent<CharacterEventListener>().RemoveCallback(CharacterEvents.Hit, Activate);
 }
Example #5
0
            internal static unsafe InputEvent Invoke(CharacterEvent Event)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((CharacterEvent *)(b + 0)) = Event;
                Main.GetProcessEvent(WidgetBlueprintLibrary.DefaultObject, GetInputEventFromCharacterEvent_ptr, new IntPtr(p));;
                return(*((InputEvent *)(b + 32)));
            }
        }
        public IActionResult UpdateCharacterEventDetails([FromBody] CharacterEvent characterEvent)
        {
            var characterEventToUpdate = _context.tblCharacterEvents.FirstOrDefault(ce => ce.Id == characterEvent.Id);

            _context.Entry(characterEventToUpdate).CurrentValues.SetValues(characterEvent);

            _context.SaveChanges();

            return(Ok());
        }
        public void AddCharacterToEvent(int characterId, int eventId)
        {
            var newCharacterEvent = new CharacterEvent
            {
                CharacterId = characterId,
                EventId     = eventId
            };

            _context.Add(newCharacterEvent);
            _context.SaveChanges();
        }
 private bool IsExist(CharacterEvent chev)
 {
     for (int i = 0; i < listBox1.Items.Count;i++ )
     {
         if (chev.CompareTo((CharacterEvent)listBox1.Items[i]))
         {
             return true;
         }
     }
     return false;
 }
Example #9
0
 public void OnDeath(CharacterEvent data)
 {
     if (!isPlayer) {
         Destroy(gameObject);
     }
     isDead = true;
     GlobalEventListener.Listener().Broadcast(GetComponent<TypeProvider>().Type, new CharacterStatusEventData(){
         EventCharacterType = GetComponent<TypeProvider>().Type,
         EventStatus = CharacterStatusEventData.Status.Die,
         Source = gameObject
     });
 }
    void OnAwake(CharacterEvent eventdata)
    {
        if (eventdata.Person != Character.Character)
        {
            return;
        }

        var col = manga.color;

        col.a       = 0;
        manga.color = col;
    }
Example #11
0
    float timerAttack;                              // Timer for counting up to the next attack.


    void Awake()
    {
        // Setting up the references.
        player       = GameObject.FindGameObjectWithTag("Player");
        playerHealth = player.GetComponent <PlayerHealth> ();
        playerEvent  = player.GetComponent <CharacterEvent> ();
        enemyHealth  = GetComponent <EnemyHealth>();
        anim         = GetComponent <Animator> ();
        state        = GetComponent <Monster> ();
        rb           = GetComponent <Rigidbody> ();
        audioSource  = GetComponent <AudioSource> ();
    }
Example #12
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        GUI.enabled = Application.isPlaying;

        CharacterEvent e = target as CharacterEvent;

        if (GUILayout.Button("Trigger"))
        {
            e.Raise(DummyCharacter.NewDummy);
        }
    }
Example #13
0
 protected void OnHit(CharacterEvent data)
 {
     int knockOffDamage = Mathf.Min(((HitEvent)data).Damage.Magnitude, CARRYABLE_SIZE);
     Resource -= knockOffDamage;
      		GameObject chunk = (GameObject)Instantiate(gameObject);
     Vector3 delta = Random.insideUnitSphere * SPAWN_DISTANCE;
     Vector3 euler = transform.rotation.eulerAngles;
     euler.y = Random.Range(0f, 360f);
     delta.y = 0f;
     chunk.transform.position = transform.position + delta;
     chunk.transform.rotation = Quaternion.Euler(euler);
     chunk.GetComponent<Germanium>().startingResources = startingResources;
     chunk.GetComponent<Germanium>().Resource = knockOffDamage;
 }
    public void StartSelection()
    {
        gameObject.SetActive(true);

        CharactedSelected  = new CharacterEvent();
        SelectionCancelled = new UnityEvent();

        for (int i = 0; i < 4; i++)
        {
            var index = i;
            CharacterPanels[index].SetupCharacterPanel(PlayerController.Instance.Party[index]);
            CharacterPanels[index].SetOnClick(() => ConfirmSelection(PlayerController.Instance.Party[index]));
        }
    }
Example #15
0
    void Awake()
    {
        anim           = GetComponent <Animator> ();
        playerAudio    = GetComponent <AudioSource> ();
        playerEvent    = GetComponent <CharacterEvent> ();
        playerMovement = GetComponent <FirstPersonController> ();
        fadeToScene    = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <FadeToScene>();

        currentHealth = startHealth;

        color.b = 0;
        color.r = (((float)currentHealth * (-(float)rgb / (float)startHealth) + (float)rgb) / (float)rgb);
        color.g = ((float)currentHealth / (float)startHealth);
        healthMaterial.SetColor("_Color", color);
    }
Example #16
0
    private bool HasPossibleCharacterEvent(RoomStats.RoomType room)
    {
        for (int i = 0; i < campMan.GetCharacterEvents().Count; i++)
        {
            GameObject     charEvent   = campMan.GetCharacterEvents()[i];
            CharacterEvent eventDriver = charEvent.GetComponent <CharacterEvent>();


            if (eventDriver.MatchesRoomType(room) &&          /*&& !eventDriver.playedOnce*/
                HasRequiredStats(eventDriver.requiredStats, true))

            {
                return(true);                //end function as soon as one is found
            }
        }
        return(false);
    }
Example #17
0
    /// <summary>
    /// Called before game start
    /// </summary>
    private void Awake()
    {
        ItemPickupEvent = new ItemEvent();
        ItemPickupEvent.AddListener(Ping);
        ItemDroppedEvent = new ItemEvent();
        ItemDroppedEvent.AddListener(Ping);

        DialogOpenEvent = new DialogEvent();
        DialogOpenEvent.AddListener(Ping);
        DialogOptionSelectedEvent = new DialogOptionEvent();
        DialogOptionSelectedEvent.AddListener(Ping);

        CharacterDeathEvent = new CharacterEvent();
        CharacterDeathEvent.AddListener(Ping);

        InteractableActivatedEvent = new InteractableEvent();
    }
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Replace(" ", "").Length > 0)
            {
                CharacterEvent che = new CharacterEvent(textBox1.Text);
                if (!IsExist(che))
                {
                    listBox1.Items.Add(che);
                }
                else
                {
                    MessageBox.Show("Try Another Event");
                }
                listBox1.SelectedIndex = 0;

            }
        }
Example #19
0
 public void OnEvent(CharacterEvent _characterEvent)
 {
     if (!_characterEvent.character.CharacterID.Equals("Spooky"))
     {
         if (_characterEvent.type == CharacterEventType.Death)
         {
             EnemyKilled();
             UpdateWaveSpawnerUI();
         }
         if (_characterEvent.type == CharacterEventType.Release)
         {
             EnemyKilled();
             UpdateWaveSpawnerUI();
         }
     }
     return;
 }
Example #20
0
    public void Initialize()
    {
        var characterDic = _context.animationEventFunc.characterDic;

        characterDic["Effect"] = new CharacterEvent {
            animationDic = new Dictionary <string, AnimationEvent>()
        };
        var animationDic = characterDic["Effect"].animationDic;

        animationDic["attack_1"] = new AnimationEvent()
        {
            frameDic = new Dictionary <int, Action <GameEntity> >()
        };

        var frameDic = animationDic["attack_1"].frameDic;

        frameDic[_context.imageAsset.infos["Effect"].animationInfos["attack_1"].maxFrame] = OnEffectAttack1Over;
    }
Example #21
0
    protected override void Execute(List <GameEntity> entities)
    {
        var characterDic = _context.animationEventFunc.characterDic;

        characterDic["UchihaMadara"] = new CharacterEvent {
            animationDic = new Dictionary <string, AnimationEvent>()
        };
        var animationDic = characterDic["UchihaMadara"].animationDic;

        // attack_1 AE
        animationDic["attack_1"] = new AnimationEvent()
        {
            frameDic = new Dictionary <int, Action <GameEntity> >()
        };

        var frameDic = animationDic["attack_1"].frameDic;

        frameDic[19] = OnUchihaMadaraTaijutsuAttackCheck;
    }
Example #22
0
    private GameObject RandomizeCharacterEvent(RoomStats.RoomType roomName)
    {
        List <GameObject> eligibleEvents = new List <GameObject>();

        for (int i = 0; i < campMan.GetCharacterEvents().Count; i++)
        {
            CharacterEvent charEvent = campMan.GetCharacterEvents()[i].GetComponent <CharacterEvent>();

            if (charEvent.MatchesRoomType(roomName) &&          /*&& charEvent.playedOnce == false*/
                HasRequiredStats(charEvent.requiredStats, true))
            {
                eligibleEvents.Add(campMan.GetCharacterEvents()[i]);
            }
        }

        int        randNum   = Random.Range(0, eligibleEvents.Count);
        GameObject thisEvent = eligibleEvents[randNum];

        campMan.playedEvents.Add(thisEvent);
        campMan.charEvents.Remove(thisEvent);
        //campMan.RemoveFromCharEvents(thisEvent);

        return(thisEvent);
    }
        public IActionResult CheckOut([FromBody] JObject token)
        {
            try
            {
                StripeConfiguration.SetApiKey(StripeKey);

                var amount  = 0;
                var totalVp = 0;
                var totalXp = 0;
                var key     = Guid.Parse(token["cartKey"].ToString());
                var cart    = _lfContext.tblCart.Include(c => c.CartItems).FirstOrDefault(c => c.Key == key);

                if (cart == null)
                {
                    return(BadRequest("Unable to retrieve cart data."));
                }

                var player       = _appDbContext.tblPlayer.FirstOrDefault(p => p.Id == cart.PlayerId).ThrowIfNull("Player");
                var currentEvent = _lfContext.tblEvent.FirstOrDefault(e => e.IsActiveEvent).ThrowIfNull("Current Event");

                foreach (var cartItem in cart.CartItems)
                {
                    if (cartItem == cart.CartItems.First())
                    {
                        amount += 40;
                    }
                    else
                    {
                        amount += 10;
                    }

                    amount  += cartItem.PurchaseXp;
                    totalVp += cartItem.VpToXp;
                    totalXp  = totalXp + cartItem.PurchaseXp + cartItem.VpToXp;
                }

                var options = new StripeChargeCreateOptions
                {
                    Amount      = amount * 100,
                    Currency    = "usd",
                    Description = $"Pre-registration for event '{currentEvent.Title}'",
                    SourceTokenOrExistingSourceId = token["id"].ToString()
                };
                var service = new StripeChargeService();
                var charge  = service.Create(options);

                cart.Paid = true;

                _lfContext.tblCart.Update(cart);

                player.VolunteerPoints  = player.VolunteerPoints - totalVp;
                player.VolunteerPoints += 10;

                _appDbContext.tblPlayer.Update(player);
                _appDbContext.SaveChanges();

                var characterDetailForEmail = new List <PreRegCharacterDetail>();
                foreach (var cartItem in cart.CartItems)
                {
                    var characterTotalXp = 0;
                    characterTotalXp += cartItem.PurchaseXp;
                    characterTotalXp += cartItem.VpToXp;

                    var character = _lfContext.tblCharacter.FirstOrDefault(c => c.Id == cartItem.CharacterId);

                    if (character == null)
                    {
                        return(BadRequest("Unable to get character data for characterid " + cartItem.CharacterId));
                    }

                    if (character.AccumulatedXP == null)
                    {
                        character.AccumulatedXP = 0;
                    }
                    if (character.AvailableXP == null)
                    {
                        character.AvailableXP = 0;
                    }

                    var baseXp = 40;

                    characterTotalXp += baseXp;

                    character.AccumulatedXP += characterTotalXp;
                    character.AvailableXP   += characterTotalXp;

                    var newCharacterEvent = new CharacterEvent
                    {
                        VpToXp      = cartItem.VpToXp,
                        XpBought    = cartItem.PurchaseXp,
                        EventId     = currentEvent.Id,
                        CharacterId = cartItem.CharacterId
                    };

                    _lfContext.tblCharacter.Update(character);
                    _lfContext.tblCharacterEvents.Add(newCharacterEvent);

                    var characterToAdd = new PreRegCharacterDetail
                    {
                        Character  = character,
                        CartItem   = cartItem,
                        BaseXp     = baseXp,
                        BaseXpCost = characterDetailForEmail.FirstOrDefault() == null ? 40 : 10
                    };

                    characterDetailForEmail.Add(characterToAdd);
                }

                _lfContext.SaveChanges();

                var stripeResonse = JObject.Parse(charge.StripeResponse.ObjectJson);

                var billingDetails = charge.Source.Card;
                var email          = token["email"].ToString();

                var emailDetails = new PreRegEmailDetails
                {
                    Email = email,
                    PreRegCharacterDetails = characterDetailForEmail,
                    OrderID        = cart.Key,
                    BillingDetails = billingDetails,
                    GrandTotal     = amount,
                    Event          = currentEvent,
                    RemainingVp    = (int)player.VolunteerPoints
                };


                Email.SendPreRegConfirmationEmail(emailDetails);

                return(Ok(charge));
            }
            catch (Exception e)
            {
                return(BadRequest("An unknown error has ocurred"));
            }
        }
Example #24
0
 /// <summary>
 /// Assigns the corresponding character event driver to this choice and outcomes. Only used for character events
 /// </summary>
 public void AssignCharacterDriver(CharacterEvent driver)
 {
     characterDriver = driver;
 }
Example #25
0
    /*
     * public IEnumerator SleepCycle( )
     * {
     * // sleep. animation. camera. fade out. advance time of day. recharge health. fade in. music.
     *
     * Zone zone = Global.Instance.GetZone( gameObject );
     * musicSource = zone.GetComponent<AudioSource>();
     * musicSource.clip = sleepyMusic;
     *
     * //    Sleeping = true;
     * //    SleepInterrupt = false;
     *
     * musicSource.Play();
     * Global.Instance.AudioGoSleep( 1 );
     *
     * cam = Global.Instance.cameraController;
     * cam.LookControlEnabled = false;
     * //cam.Automated = true;
     * //cam.LerpTo( transform.position + Vector3.up * cam.cameraHeightMax, Vector3.down, cam.GetForwardDirection(), cameraLerpDuration );
     * float start = Time.unscaledTime;
     * float todStart = Global.Instance.CurrentTimeOfDay;
     * //float lerpstart = cam.lookInput.y;
     * Color cacheScreenFade = cam.FullScreenQuad.color;
     *
     * while( Time.unscaledTime - start < sleepCameraLerpDurationIn )
     * {
     *  if( SleepInterrupt )
     *    break;
     *  float alpha = ( Time.unscaledTime - start ) / sleepCameraLerpDurationIn;
     *  cam.lookInput.y = Mathf.Lerp(cam.lookInput.y, 90, alpha );
     *  //cam.ScreenFadeColor( Color.Lerp( cacheScreenFade, fade, alpha) );
     *  yield return null;
     * }
     * if( SleepInterrupt )
     * {
     *  yield return WakeUpSequence();
     *  yield break;
     * }
     *
     * Time.timeScale = sleepTimescale;
     * start = Time.unscaledTime;
     * while( Time.unscaledTime - start < sleepTODWait )
     * {
     *  if( SleepInterrupt )
     *    break;
     *  float alpha = ( Time.unscaledTime - start ) / sleepTODWait;
     *  Global.Instance.CurrentTimeOfDay = todStart + sleepTODDuration * alpha;
     *  Global.Instance.UpdateTimeOfDay();
     *  //cam.ScreenFadeColor( fade );
     *  yield return null;
     * }
     *
     * SleepInterrupt = true;
     * yield return WakeUpSequence();
     * }
     *
     * IEnumerator WakeUpSequence()
     * {
     * Time.timeScale = 1;
     * musicSource.Stop();
     * Global.Instance.AudioWakeUp( 1 );
     * cam.LookControlEnabled = true;
     *
     * float start = Time.unscaledTime;
     * while( Time.unscaledTime - start < sleepCameraLerpDurationOut )
     * {
     *  float alpha = ( Time.unscaledTime - start ) / sleepCameraLerpDurationOut;
     *  cam.lookInput.y = Mathf.Lerp( cam.lookInput.y, 15, alpha );
     *  //cam.ScreenFadeColor( Color.Lerp( fade, cacheScreenFade, alpha) );
     *  yield return null;
     * }
     * //Sleeping = false;
     * //SleepInterrupt = false;
     *
     * sleepState = SleepState.None;
     * body.isKinematic = false;
     * ball.Sphere.enabled = true;
     * ball.LockToGround = true;
     * FaceDirectionOfMovement = true;
     * moveTransform.parent = null;
     * billboard.faceCamera = true;
     * PlayFaceAnimation( "idle" );
     * }
     */

    void UpdatePlayer()
    {
//    if( Sleeping )
//    {
//      if( Input.GetButtonDown( "Interact" ) )
//      {
//        SleepInterrupt = true;
//      }
//      return;
//    }
        UpdatePlayerMovementInput();
        UpdatePlayerWeaponInput();

        if (Input.GetKeyDown(KeyCode.Equals))
        {
            CharacterEvent evt = new CharacterEvent(CharacterEventEnum.DebugAddAffinity, moveTransform.position, Time.time, this, this);
            BroadcastEvent(evt, Global.Instance.GlobalSightDistance);
        }

        if (Input.GetKeyDown(KeyCode.Minus))
        {
            CharacterEvent evt = new CharacterEvent(CharacterEventEnum.DebugSubAffinity, moveTransform.position, Time.time, this, this);
            BroadcastEvent(evt, Global.Instance.GlobalSightDistance);
        }

        if (Input.GetKeyDown(KeyCode.H))
        {
            Global.Instance.cameraController.Shake();
        }

        /*if( Input.GetButtonDown( "Mode" ) )
         * {
         * PushState( "Construction" );
         * }*/

        if (Input.GetButtonDown("Action"))
        {
            selected = moveTransform;
            acts.Clear();
            acts.Add(this);
            List <string> actions = new List <string>();
            actions.Add("mode build");
            actions.Add("follow all");
            actions.Add("unfollow all");
            actions.Add("sleep");
            PushState("ContextMenu");
            Global.Instance.ContextMenu.Show(actions.ToArray());
        }
        else
        if (HeldObject != null)
        {
            InteractIndicator.SetActive(false);
            if (Input.GetButtonDown("Interact"))
            {
                DropObject();
                lastSelected = null;
            }
        }
        else
        if (Physics.CheckSphere(moveTransform.position, ActionRadius, LayerMask.GetMask(Global.Instance.gameData.InteractLayers), qti))
        {
            selected = null;
            Vector3 start = moveTransform.position;
            start.y = Global.Instance.GlobalRaycastY;
            RaycastHit info = new RaycastHit();
            // line of sight
            string[] BlockingLineOfSightLayers = new string[] { "Default" };
            if (Physics.Raycast(new Ray(start, moveTransform.forward), out info, ActionRadius, LayerMask.GetMask(Global.Instance.gameData.InteractLayers) | LayerMask.GetMask(BlockingLineOfSightLayers), qti))
            {
                // prevent selecting objects through walls
                if (!((info.transform.gameObject.layer & LayerMask.GetMask(BlockingLineOfSightLayers)) > 0))
                {
                    List <IAction> iactions = new List <IAction>(info.transform.GetComponents <IAction>());
                    if (iactions.Count > 0)
                    {
                        selected = info.transform;
                    }
                }
            }

            if (selected == null)
            {
                // if no object is in direct line of sight, choose highest dot
                int      count      = Physics.OverlapSphereNonAlloc(start, ActionRadius, SensorColliders, LayerMask.GetMask(Global.Instance.gameData.InteractLayers), qti);
                Collider closest    = null;
                float    largestDot = 0f;
                for (int i = 0; i < count; i++)
                {
                    Collider collider = SensorColliders[i];
                    if (CanSeeObject(collider.gameObject, false))
                    {
                        Vector3 flat = collider.transform.position - moveTransform.position;
                        flat.y = 0;
                        float dot = Vector3.Dot(moveTransform.forward, flat.normalized);
                        if (dot > ActionRaycastMinimumDot && dot > largestDot && collider.transform != moveTransform)
                        {
                            closest    = collider;
                            largestDot = dot;
                        }
                    }
                }
                if (closest != null)
                {
                    //List<IAction> iactions = new List<IAction>( selected.GetComponents<IAction>() );
                    selected = closest.transform;
                }
            }

            if (selected == moveTransform)
            {
                Debug.LogWarning("tried to select self", this);
                return;
            }

            if (selected == null || Vector3.Distance(selected.transform.position, moveTransform.position) > ActionRadius)
            {
                InteractIndicator.SetActive(false);
                lastSelected = null;
                if (Global.Instance.ContextMenu.gameObject.activeSelf)
                {
                    Global.Instance.ContextMenu.Hide();
                }
                selectedCharacter = null;
                HidePositionalText();
                Global.Instance.HideCharacterInfo();
            }
            else
            {
                acts = new List <IAction>(selected.GetComponents <IAction>());
                if (acts.Count > 0)
                {
                    // default indicator transform
                    InteractIndicator.transform.position   = selected.position + Vector3.up * Global.Instance.GlobalSpriteOnGroundY;
                    InteractIndicator.transform.rotation   = Quaternion.identity;
                    InteractIndicator.transform.localScale = Vector3.one;

                    // only let a single IAction class position the indicator
                    IAction firstAction = acts[0];
                    if (firstAction != lastSelected)
                    {
                        lastSelected = firstAction;
                        HidePositionalText();
                        selectedCharacter = null;
                        Global.Instance.HideCharacterInfo();
                    }
                    if (!InteractIndicator.activeSelf)
                    {
                        InteractIndicator.SetActive(true);
                    }

                    Character chr = selected.GetComponent <Character>();
                    if (chr != null)
                    {
                        selectedCharacter = chr;
                        // F8CF62
                        Color gold = new Color((float)0xF8 / 255f, (float)0xCF / 255f, (float)0x62 / 255f);
                        ShowPositionalText(selected.position, selectedCharacter.CharacterName, selectedCharacter.ball.Sphere.radius, gold);
                        Global.Instance.ShowCharacterInfo(selectedCharacter);
                    }

                    // provide context-sensitive actions to the player
                    List <string> actions = new List <string>();
                    // tags have categorical actions associated with them. Context is not considered, though.
                    Dictionary <Tag, string> actionTagMap = new Dictionary <Tag, string>();
                    if (WithinHoldRange(selected))
                    {
                        actionTagMap[Tag.Swag] = "carry";
                    }
                    actionTagMap[Tag.Weapon] = "keep";
                    actionTagMap[Tag.Food]   = "eat";
                    foreach (var act in acts)
                    {
                        MonoBehaviour mono = (MonoBehaviour)act;
                        Tags          tags = mono.GetComponent <Tags>();
                        if (tags != null)
                        {
                            // based on order of keys in dictionary
                            foreach (var pair in actionTagMap)
                            {
                                if (tags.HasTag(pair.Key) && !actions.Contains(pair.Value))
                                {
                                    actions.Add(pair.Value);
                                }
                            }
                        }
                    }

                    ActionData actionData = new ActionData();
                    actionData.instigator = this;
                    actionData.actions    = actions;
                    actionData.indicator  = InteractIndicator.transform;
                    firstAction.GetActionContext(ref actionData);


                    if (Input.GetButtonDown("Interact"))
                    {
                        if (actions.Count > 0)
                        {
                            PushState("ContextMenu");
                            ShowContextMenu(selected, actions.ToArray());

                            if (selectedCharacter == null)
                            {
                                HidePositionalText();
                            }
                            else
                            {
                                CenterContextText(selectedCharacter.CharacterName);
                            }
                        }
                        else
                        {
                            // there is only one action to take
                            foreach (var a in acts)
                            {
                                a.OnAction(this);
                            }
                        }
                    }
                }
            }
        }
        else
        {
            InteractIndicator.SetActive(false);
        }

        if (Input.GetButtonDown("Next"))
        {
            SelectNextRightHand();
        }

        if (Input.GetButtonDown("Previous"))
        {
            SelectNextLeftHand();
        }

        if (Input.GetButtonDown("Shield") || Input.GetAxis("Shield") > 0.5f)
        {
            ShieldOn();
        }

        if (Input.GetButtonUp("Shield") || Input.GetAxis("Shield") < 0.5f)
        {
            ShieldOff();
        }
    }
Example #26
0
 protected void DealDamage(CharacterEvent data)
 {
     DealDamage(((HitEvent)data).Damage, true, ((HitEvent)data).Source);
 }
Example #27
0
 // Use this for initialization
 void Awake()
 {
     playerEvent = GameObject.FindGameObjectWithTag("Player").GetComponent <CharacterEvent> ();
 }
    void TalkGossip(Character instigator)
    {
        AffinityData aff = GetAffinity(instigator.id);

        if (aff.Value > AffPeaceful && aff.Value < AffShare - 1)
        {
            ModifyAffinity(instigator.id, AffModTalk);
        }

        if (aff.Value > AffTalk)
        {
            if (KnownEvents.Count == 0)
            {
                Speak("hello");
                return;
            }
            // choose a ConverseEvent to share with the instigator
            CharacterEvent evt = KnownEvents[GossipIndex++ % KnownEvents.Count];

            CharacterInfo witness = Global.Instance.CharacterInfoLookup[evt.WitnessId];
            CharacterInfo cia     = Global.Instance.CharacterInfoLookup[evt.CharacterIdA];
            CharacterInfo cib     = Global.Instance.CharacterInfoLookup[evt.CharacterIdB];

            /*
             * // lazy lookup
             * if( evt.CharacterA == null )
             * {
             * SerializedComponent sca = SerializedObject.ResolveComponentFromId( evt.CharacterIdA );
             * if( sca != null )
             *  evt.CharacterA = (Character)sca;
             * }
             * // lazy lookup
             * if( evt.CharacterB == null )
             * {
             * SerializedComponent scb = SerializedObject.ResolveComponentFromId( evt.CharacterIdB );
             * if( scb != null )
             *  evt.CharacterB = (Character)scb;
             * }
             */

            instigator.ReceiveEvent(evt);

            // 1) what happened. Whether I saw it, or someone told me. with correct object/subject dependent on who is listening, and pronouns, tense, etc.
            // 2) why it happened... assumptions, speculation, unknowns.
            // 3) personal feelings, assessment, conclusion.

            string statement = "";
            string verb;
            switch (evt.type)
            {
            case CharacterEventEnum.Damage:
                verb = "attack";
                if (cia.id == id)
                {
                    statement += cib.name + " " + PastTense(verb) + " me " + (Time.time - evt.time) + " seconds ago.";
                }
                else if (cib.id == id)
                {
                    statement += "I " + PastTense(verb) + " " + cia.name + " " + (Time.time - evt.time) + " seconds ago.";
                }
                else if (witness.id == id)
                {
                    statement += "I saw " + cib.name + " " + verb + " " + cia.name + " " + (Time.time - evt.time) + " seconds ago.";
                }
                else if (witness.id == cia.id)
                {
                    statement += cia.name + " said " + cib.name + " " + PastTense(verb) + " " + ThirdPersonSingularObject(cia) + " " + (Time.time - evt.time) + " seconds ago.";
                }
                else if (witness.id == cib.id)
                {
                    statement += cib.name + " said " + ThirdPersonSingularSubject(cib) + " " + PastTense(verb) + " " + cia.name + " " + (Time.time - evt.time) + " seconds ago.";
                }
                else
                {
                    statement += witness.name + " saw " + cib.name + " " + verb + " " + cia.name + " " + (Time.time - evt.time) + " seconds ago.";
                }
                if (!cia.alive)
                {
                    statement += " " + Cap(cia.name) + " is dead.";
                }
                break;

            case CharacterEventEnum.Death:
                statement += cib.name + " killed " + cia.name + "! " + (Time.time - evt.time) + " seconds ago.";
                break;

            default:
                statement += evt.type.ToString() + " " + cia.name + " " + cib.name + " " + (Time.time - evt.time).ToString("D") + " seconds ago.";
                statement += " " + ConstructStatementAbout(cib.id);
                break;
            }
            Speak(statement, 2);

            /*
             * // Gossip: pick a random affinity/character and say something about them
             * string say = "...";
             * List<int> keys = new List<int>();
             * foreach( var pair in Affinity )
             * if( pair.Key != instigator.id && pair.Key != GetInstanceID() )
             *  keys.Add( pair.Key );
             * if( keys.Count > 0 )
             * {
             * Character cha = null;
             * const int maxtries = 10;
             * int tries = 0;
             * while( cha == null )
             * {
             *  tries++;
             *  if( tries > maxtries || tries > keys.Count )
             *    break;
             *
             *  SerializedComponent sco = null;
             *  int key = keys[ GossipIndex++ % keys.Count ];
             *  if( SerializedObject.serializedComponents.ContainsKey( key ) )
             *    sco = SerializedObject.serializedComponents[ key ];
             *  else
             *    continue;
             *  if( sco == null )
             *  {
             *    // character is null. is dead?
             *    continue;
             *  }
             *  cha = (Character)sco;
             *  if( cha != null )
             *  {
             *    AffinityData ad = GetAffinity( cha );
             *
             *    string ThirdPersonSingularSubject = "<ThirdPersonSingularSubject>";
             *    string ThirdPersonSingularObject = "<ThirdPersonSingularObject>";
             *    if( cha.identity.female )
             *    {
             *      ThirdPersonSingularSubject = "she";
             *      ThirdPersonSingularObject = "her";
             *    }
             *    else
             *    {
             *      ThirdPersonSingularSubject = "he";
             *      ThirdPersonSingularObject = "him";
             *    }
             *
             *    if( ad.Value < AffPeaceful )
             *      say = "I hate " + cha.CharacterName + ". " + Cap( ThirdPersonSingularSubject ) + " can die.";
             *    else
             *      if( ad.Value < AffTalk )
             *        say = cha.CharacterName + " sucks. I will not talk to " + ThirdPersonSingularObject + ".";
             *      else
             *        if( ad.Value < 0 )
             *          say = "I think " + cha.CharacterName + " needs to help out around here.";
             *        else
             *          if( ad.Value < AffFollow )
             *            say = cha.CharacterName + " seems okay.";
             *          else
             *            if( ad.Value < AffShare )
             *              say = "I trust " + cha.CharacterName + ". I would follow " + ThirdPersonSingularObject + " if " + ThirdPersonSingularSubject + " asked.";
             *            else
             *              if( ad.Value < AffLoyal )
             *                say = cha.CharacterName + " is great!";
             *              else
             *                say = "I love " + cha.CharacterName + ". " + Cap( ThirdPersonSingularSubject ) + " is the best.";
             *    break;
             *  }
             * }
             * Speak( say, 2 );
             *
             * }
             */
        }
    }
Example #29
0
        public IActionResult CheckIn([FromBody] Cart cart)
        {
            try
            {
                cart = cart.ThrowIfNull("Cart");
                var player       = _appDbContext.tblPlayer.FirstOrDefault(p => p.Id == cart.PlayerId).ThrowIfNull("Player");
                var currentEvent = _lfContext.tblEvent.FirstOrDefault(e => e.IsActiveEvent).ThrowIfNull("CurrentEvent");
                var cartItems    = cart.CartItems.ThrowIfNull("CartItems");

                foreach (var cartItem in cart.CartItems)
                {
                    var characterTotalXp = 0;
                    characterTotalXp += cartItem.PurchaseXp;
                    characterTotalXp += cartItem.VpToXp;

                    var character = _lfContext.tblCharacter.FirstOrDefault(c => c.Id == cartItem.CharacterId)
                                    .ThrowIfNull($"Character with ID '{cartItem.CharacterId}'");

                    if (_lfContext.tblCharacterEvents.FirstOrDefault(ce =>
                                                                     ce.CharacterId == character.Id && ce.EventId == currentEvent.Id) != null)
                    {
                        return(BadRequest(
                                   $"Character '{character.Name}' has already been registered for this event! Please remove."));
                    }

                    if (character.AccumulatedXP == null)
                    {
                        character.AccumulatedXP = 0;
                    }
                    if (character.AvailableXP == null)
                    {
                        character.AvailableXP = 0;
                    }

                    var baseXp = 40;

                    characterTotalXp        += baseXp;
                    character.AccumulatedXP += characterTotalXp;
                    character.AvailableXP   += characterTotalXp;

                    var newCharacterEvent = new CharacterEvent
                    {
                        VpToXp      = cartItem.VpToXp,
                        XpBought    = cartItem.PurchaseXp,
                        EventId     = currentEvent.Id,
                        CharacterId = cartItem.CharacterId
                    };

                    _lfContext.tblCharacter.Update(character);
                    _lfContext.tblCharacterEvents.Add(newCharacterEvent);
                }

                _lfContext.SaveChanges();

                var totalVp = cartItems.Sum(ci => ci.VpToXp);

                player.VolunteerPoints = player.VolunteerPoints - totalVp;
                _appDbContext.tblPlayer.Update(player);
                _appDbContext.SaveChanges();

                return(Ok(player.Id));
            }
            catch (Exception e)
            {
                return(BadRequest(e));
            }
        }
Example #30
0
 protected void OnGermaniumPickup(CharacterEvent data)
 {
     goals.Push(new MoveTowards(){Destination = home, Priority = true});
 }
Example #31
0
 // Use this for initialization
 void Awake()
 {
     audioSource = GetComponent <AudioSource> ();
     playerEvent = GameObject.FindGameObjectWithTag("Player").GetComponent <CharacterEvent> ();
     generalClip = audioSource.clip;
 }
Example #32
0
 protected void OnKill(CharacterEvent data)
 {
     trap.AddItem(Generate(NextValue()), ((KillEvent)data).Other.transform.position);
 }
Example #33
0
 public void ResetAbilityProvider(CharacterEvent data)
 {
     Provider.Reset();
 }
Example #34
0
 private void Awake()
 {
     characterEvent = GetComponent <CharacterEvent>();
 }
 private void OnCharEvent(Window window, CharacterEvent ev)
 {
     _characterEvents.Enqueue(ev);
 }
Example #36
0
 public virtual void AwardKill(CharacterEvent killed)
 {
     GermaniumTracker.Singleton()[target.Team] += 10;
 }
    protected override void Execute(List <GameEntity> entities)
    {
        var characterDic = _context.animationEventFunc.characterDic;

        characterDic["NamikazeMinato"] = new CharacterEvent {
            animationDic = new Dictionary <string, AnimationEvent>()
        };
        var animationDic = characterDic["NamikazeMinato"].animationDic;

        //        // idle AE
        //        animationDic["idle"] = new AnimationEvent {frameDic = new Dictionary<int, Action>()};
        //
        //        var frameDic = animationDic["idle"].frameDic;
        //        frameDic[_context.imageAsset.imageInfos.infos["NamikazeMinato"].animationInfos["idle"].maxFrame] = OnMinatoIdleOver;

        // jump_0 AE
        animationDic["jump_0"] = new AnimationEvent()
        {
            frameDic = new Dictionary <int, Action <GameEntity> >()
        };

        var frameDic = animationDic["jump_0"].frameDic;

        frameDic[_context.imageAsset.infos["NamikazeMinato"].animationInfos["jump_0"].maxFrame] = OnMinatoStartJumpOver;

        // attack_1 AE
        animationDic["attack_1"] = new AnimationEvent()
        {
            frameDic = new Dictionary <int, Action <GameEntity> >()
        };

        frameDic     = animationDic["attack_1"].frameDic;
        frameDic[10] = OnMinatoAttackPlayEffect;
        frameDic[11] = OnMinatoTaijutsuAttackCheck;

        animationDic["attack_2"] = new AnimationEvent()
        {
            frameDic = new Dictionary <int, Action <GameEntity> >()
        };
        frameDic     = animationDic["attack_2"].frameDic;
        frameDic[6]  = OnMinatoTaijutsuAttackCheck;
        frameDic[11] = OnMinatoTaijutsuAttackCheck;

        animationDic["attack_3"] = new AnimationEvent()
        {
            frameDic = new Dictionary <int, Action <GameEntity> >()
        };
        frameDic    = animationDic["attack_3"].frameDic;
        frameDic[5] = OnMinatoTaijutsuAttackCheck;


        animationDic["attack_4"] = new AnimationEvent()
        {
            frameDic = new Dictionary <int, Action <GameEntity> >()
        };
        frameDic     = animationDic["attack_4"].frameDic;
        frameDic[10] = OnMinatoTaijutsuAttackCheck;


        animationDic["attack_5"] = new AnimationEvent()
        {
            frameDic = new Dictionary <int, Action <GameEntity> >()
        };
        frameDic     = animationDic["attack_5"].frameDic;
        frameDic[12] = OnMinatoTaijutsuAttackCheck;
    }
Example #38
0
 public void OnDeath(CharacterEvent data)
 {
     GameObject ex = (GameObject)Instantiate(explosion);
     ex.transform.position = transform.position;
 }
Example #39
0
 ///<summary>Get Input Event from Character Event</summary>
 public static InputEvent GetInputEventFromCharacterEvent(CharacterEvent Event) =>
 WidgetBlueprintLibrary_methods.GetInputEventFromCharacterEvent_method.Invoke(Event);