Exemple #1
0
        private static BitmapSource CreateCamouflagePreview(LocalGameClient client, Camouflage camouflage, WpfColor baseColor)
        {
            if (!PackageStream.IsFileExisted(client.PackageIndexer, camouflage.Texture))
            {
                return(null);
            }

            var image = new Image();

            image.Width  = 64;
            image.Height = 64;

            using (var stream = new PackageStream(client.PackageIndexer, camouflage.Texture))
            {
                image.Source = (new DDSImage(stream)).BitmapSource(0);
            }

            var colors = camouflage.GetColors();

            image.Effect = new CamouflageEffect()
            {
                BaseColor = baseColor,
                Color1    = colors[0],
                Color2    = colors[1],
                Color3    = colors[2],
                Color4    = colors[3],
            };

            image.MeasureAndArrange();
            var imageSource = image.RenderToBitmap();

            imageSource.Freeze();
            return(imageSource);
        }
        //======================================================
        #region Event Methods
        private void SpecialForm_Load(object sender, EventArgs e)
        {
            //Until I find a better way, this list is typed manually.

            //Rules attached to this ability should be added first, for editing.
            //TODO Need to determine between Common Abilities and Non-Common, as common abilities can be Active or Passive Abilities).
            if (character.SpecialAbilities != null)
            {
                foreach (Ability a in character.SpecialAbilities)
                {
                    if (a.IsCommon)
                    {
                        clbAbilities.Items.Add(a, true);
                    }
                }
            }

            //Add the rest of the abilities, but don't add ones already added from the character.
            Ability ability = new ActiveCamouflage();

            if (!character.SpecialAbilities.Contains(ability))
            {
                clbAbilities.Items.Add(ability);
            }
            ability = new Camouflage();
            if (!character.SpecialAbilities.Contains(ability))
            {
                clbAbilities.Items.Add(ability);
            }
            ability = new Cloaking();
            if (!character.SpecialAbilities.Contains(ability))
            {
                clbAbilities.Items.Add(ability);
            }
            ability = new Fearless();
            if (!character.SpecialAbilities.Contains(ability))
            {
                clbAbilities.Items.Add(ability);
            }
            ability = new Fleet();
            if (!character.SpecialAbilities.Contains(ability))
            {
                clbAbilities.Items.Add(ability);
            }
            ability = new Fly();
            if (!character.SpecialAbilities.Contains(ability))
            {
                clbAbilities.Items.Add(ability);
            }
            ability = new GreaterDodge();
            if (!character.SpecialAbilities.Contains(ability))
            {
                clbAbilities.Items.Add(ability);
            }
        }
        private bool SetCamouflage(Camouflage value)
        {
            if (_camouflage.KeyEquals(value))
            {
                return(false);
            }

            this.ScriptHost.SetScript("camouflage", CamouflageScript.Create(value));

            return(true);
        }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == Names.Tags.Player.ToString())
        {
            if (player == null)
            {
                player = collision.GetComponent <Camouflage>();
            }

            player.SetCamouflageFlag(true);
        }
    }
Exemple #5
0
    /// <summary>
    /// Checks if the player was spotted before camouflaging
    /// </summary>
    /// <param name="hit">Result of the raycast</param>
    /// <returns>true if spotted, false otherwise</returns>
    public bool SpottedCheck(Collider2D hit)
    {
        if (playerState == null)
        {
            playerState = hit.GetComponent <Camouflage>();
        }
        else
        {
            return(spottedBeforeCamouflage);
        }

        spottedBeforeCamouflage = !playerState.IsCamouflaged();

        return(spottedBeforeCamouflage);
    }
Exemple #6
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == Names.Tags.Player.ToString())
        {
            if (playerState == null)
            {
                playerState = collision.GetComponent <Camouflage>();
            }

            if (spottedCheck.WasSpottedBeforeCamouflage() || !playerState.IsCamouflaged())
            {
                EventManager.TriggerEvent(Names.Events.PlayerHit);
                spottedCheck.SetToDefault();
            }
        }
    }
Exemple #7
0
        public static ImageSource GetCamouflagePreview(Camouflage camouflage, WpfColor baseColor, IRepository repository)
        {
            var client = repository as LocalGameClient;

            if (client == null)
            {
                return(null);
            }

            var cacheFilename = string.Format("camouflage_{0}_{1}.png", camouflage.Id, camouflage.Key);

            return(client.CacheManager.Load(cacheFilename,
                                            () => CamouflagePreview.CreateCamouflagePreview(client, camouflage, baseColor),
                                            CamouflagePreview.LoadCamouflagePreview,
                                            CamouflagePreview.SaveCamouflagePreview));
        }
 void Awake()
 {
     player = null;
 }
Exemple #9
0
 public void SetToDefault()
 {
     playerState             = null;
     spottedBeforeCamouflage = false;
 }
Exemple #10
0
 private void Awake()
 {
     playerState             = null;
     spottedBeforeCamouflage = false;
 }
Exemple #11
0
 private void Awake()
 {
     spottedCheck = GetComponent <PlayerInLineOfSight>();
     playerState  = null;
 }
 public CamouflageVM(Camouflage camouflage, WpfColor baseColor, IRepository repository)
 {
     _model            = camouflage;
     this.PreviewImage = CamouflagePreview.GetCamouflagePreview(camouflage, baseColor, repository);
 }