Exemplo n.º 1
0
    public override void OnPrismChange(MagicColor mode)
    {
        if ((magicColor & mode) != 0)
        {
            BecomeInteractable();

            switch (mode)
            {
                case MagicColor.Red:
                    spriteRenderer.color = Color.red;
                    break;
                case MagicColor.Green:
                    spriteRenderer.color = Color.green;
                    break;
                case MagicColor.Blue:
                    spriteRenderer.color = Color.blue;
                    break;
            }
        }
        else
        {
            RefreshColor();
            BecomeNotInteractable();
        }
    }
    public void ChangeTo(MagicColor mode)
    {
        if (currerntMode == mode)
            return;

        transSE.Play();

        foreach (MagicObject mo in magicObjectList)
        {
            mo.OnPrismChange(mode);
        }

        switch (mode)
        {
            case MagicColor.Red:
                swapAnim.SetTrigger(toRedId);
                break;
            case MagicColor.Green:
                swapAnim.SetTrigger(toGreenId);
                break;
            case MagicColor.Blue:
                swapAnim.SetTrigger(toBlueId);
                break;
        }
        PushPlayer();
        if (playerCam.state == CameraState.Normal)
            playerCam.FixByPrism(playerCam.transform.position);
        currerntMode = mode;
    }
Exemplo n.º 3
0
    public void Initialize(MagicColor color)
    {
        this.color = color;
        ColoredPart.ChangeColor(color);

        StartCoroutine(growRoutine());
    }
Exemplo n.º 4
0
    public void Start()
    {
        MagicColor color = (MagicColor)Random.Range(0, 3);

        Gem.ColorPart.ChangeColor(color);
        Health.Color = color;

        transform.position = EnemySpawner.Instance.HamsterSpawnLocations.GetNext().position;

        rb       = GetComponent <Rigidbody2D>();
        animator = GetComponent <Animator>();

        StartCoroutine(startRoutine());

        Health.Death.AddListener(() => {
            Gem.Launch();

            currentSpeed = DeathSpeed;
            if (RandomExtra.Chance(.5f))
            {
                currentSpeed *= -1;
            }

            StopAllCoroutines();

            GetComponent <Collider2D>().enabled = false;
            GetComponent <DestroyWhenChildrenInvisible>().ShouldDestroy = true;
        });
    }
Exemplo n.º 5
0
 public override void OnPrismChange(MagicColor mode)
 {
     if (mode == magicColor)
         spriteRenderer.enabled = true;
     else
         spriteRenderer.enabled = false;
 }
Exemplo n.º 6
0
 public override void OnPrismChange(MagicColor mode)
 {
     base.OnPrismChange(mode);
     //指定分離出來的物體的速度,因為我發現Instantiate複製出來的物體,在物理引擎裡面的速度不會保留,所以要重新指定。
     if (detachedObj != null)
       detachedObj.GetComponent<Rigidbody2D>().velocity = rb.velocity;
 }
    public void ChangeColor(MagicColor color)
    {
        Color = color;

        var m = ParticleSystem.main;

        m.startColor = MagicColorStats.ColorMap[Color];
    }
 public void Remove(MagicColor magiccolor)
 {
     using (var session = NHibernateHelper.OpenSession())
         using (var transaction = session.BeginTransaction())
         {
             session.Delete(magiccolor);
             transaction.Commit();
         }
 }
Exemplo n.º 9
0
    // 用户自定义编辑颜色(添加颜色之后应该同步修改块儿的记录)(编辑颜色要判断颜色的个数是否过多和组合是否重复)
    public void SetEditColor(MagicColor pickedcolor)
    {
        operater.ColorDelete (mycolor);
        this.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [pickedcolor];
        mycolor = pickedcolor;
        operater.ColorAdd ();

        cube.SetColor (this.gameObject);
    }
Exemplo n.º 10
0
    public void Initialize(MagicColor color)
    {
        this.color = color;

        for (int i = 0; i < Clouds; i++)
        {
            spawnCloud();
        }
    }
Exemplo n.º 11
0
    // 用户自定义编辑颜色(添加颜色之后应该同步修改块儿的记录)(编辑颜色要判断颜色的个数是否过多和组合是否重复)
    public void SetEditColor(MagicColor pickedcolor)
    {
        operater.ColorDelete(mycolor);
        this.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [pickedcolor];
        mycolor = pickedcolor;
        operater.ColorAdd();

        cube.SetColor(this.gameObject);
    }
Exemplo n.º 12
0
 public override void RandomizePointColors()
 {
     foreach (var triangle in _triangles)
     {
         foreach (var point in triangle.GetPoints())
         {
             point.Color = MagicColor.GetRandomColor();
         }
     }
 }
 public override void RandomizePointColors()
 {
     foreach (var penLine in _penLines)
     {
         foreach (var point in penLine.GetPoints())
         {
             point.Color = MagicColor.GetRandomColor();
         }
     }
 }
Exemplo n.º 14
0
    public void Initialize(bool goingLeft, MagicColor color)
    {
        base.Initialize(color);

        rb.velocity = new Vector2
                      (
            LaunchSpeed.x * (goingLeft ? -1 : 1),
            LaunchSpeed.y
                      );

        destroyInvisible = GetComponent <DestroyWhenChildrenInvisible>();
    }
Exemplo n.º 15
0
    void Awake()
    {
        SingletonSetInstance(this, true);
        CoinMask.fillAmount = 1;

        colors       = new ColorBag();
        colors.Items = new List <MagicColor> {
            MagicColor.Red, MagicColor.Green, MagicColor.Blue
        };
        colors.AvoidRepeats = true;

        currentColor = colors.GetNext();
    }
Exemplo n.º 16
0
    MagicColor getColor()
    {
        colorStreak++;

        var chance = ChanceToSwitchColorsByColorStreak.Evaluate(colorStreak);

        if (RandomExtra.Chance(chance))
        {
            currentColor = colors.GetNext();
            colorStreak  = 0;
        }

        return(currentColor);
    }
Exemplo n.º 17
0
    // uses c# compare convention to define greater-than relation. semantically, if x > y, then x is super effective against y and y is weak against x; if x == y, then x and y have neutral effects with one another
    public static int Compare(this MagicColor x, MagicColor y)
    {
        // from https://stackoverflow.com/a/9553712/5931898
        int d = (3 + y - x) % 3;

        if (d == 2)
        {
            return(-1);
        }
        else
        {
            return(d);
        }
    }
Exemplo n.º 18
0
 public override void OnPrismChange(MagicColor mode)
 {
     if ((mode & magicColor) != MagicColor.None)
     {
         col.isTrigger = false;
         spriteRenderer.enabled = true;
         anim.SetBool(appearId, true);
     }
     else
     {
         col.isTrigger = true;
         spriteRenderer.enabled = false;
         anim.SetBool(appearId, false);
     }
 }
Exemplo n.º 19
0
    public void ClosePrism()
    {
        if (currerntMode == MagicColor.White)
            return;

        transSE.Play();

        currerntMode = MagicColor.White;
        swapAnim.SetTrigger(toWhiteId);
        foreach (MagicObject mo in magicObjectList)
        {
            mo.OnPrismClose();
        }
        if (playerCam.state == CameraState.FixedByPrism)
            playerCam.ReleaseCam();
        PushPlayer();
    }
Exemplo n.º 20
0
    public void SetColor(GameObject p)
    {
        bool cansetcolor = true;

        if (operater == null)
        {
            operater = FindObjectOfType <MagicCubeOperate> ();
        }
        MagicColor curcolor = operater.EditColor;

        if (cubecolor.ContainsKey(p))
        {
            foreach (GameObject g in cubecolor.Keys)
            {
                if (g != p)
                {
                    if (!cubecolor [g].Equals(MagicColor.None))
                    {
                        if (cubecolor [g] == curcolor)
                        {
                            cansetcolor = false;
                            break;
                        }
                        int index = (int)curcolor;
                        if (index >= 3 && (int)cubecolor [g] == index - 3)
                        {
                            cansetcolor = false;
                            break;
                        }
                        else if (index < 3 && (int)cubecolor [g] == index + 3)
                        {
                            cansetcolor = false;
                            break;
                        }
                    }
                }
            }
            if (cansetcolor)
            {
                p.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [curcolor];
                cubecolor [p] = curcolor;
            }
        }
    }
Exemplo n.º 21
0
    public void Initialize(HamsterFart parent, Vector2 velocity, MagicColor color)
    {
        this.parent = parent;

        ColorPart.ChangeColor(color);

        bool use1 = RandomExtra.Chance(.5f);

        Outline.sprite = use1 ? Outline1 : Outline2;
        Cloud.sprite   = use1 ? Cloud1 : Cloud2;

        Outline.SetAlpha(Alpha);
        Cloud.SetAlpha(Alpha);

        GetComponent <Collider2D>().isTrigger = true; // just in case
        GetComponent <Rigidbody2D>().velocity = velocity;

        Destroy(gameObject, RandomExtra.Range(LifeTimeRange));
    }
    MagicColor _getTeamMate(bool next)
    {
        MagicColor col = MageSquad.Instance.ActiveMage.Color;

        switch (col)
        {
        case MagicColor.Red:
            return(next ? MagicColor.Green : MagicColor.Blue);

        case MagicColor.Green:
            return(next ? MagicColor.Blue : MagicColor.Red);

        case MagicColor.Blue:
            return(next ? MagicColor.Red : MagicColor.Green);

        default:
            throw new Exception($"unexpected active mage color {col}");
        }
    }
        public void CanAddColor()
        {
            var color = new MagicColor {
                Name = "Green", ShortName = "G"
            };
            IMagicColorsRepository repository = new MagicColorsRepository();

            repository.Add(color);

            // use session to try to load the product);
            using (ISession session = _sessionFactory.OpenSession())
            {
                var fromDb = session.Get <MagicColor>(color.Id);

                // Test that the color was successfully inserted
                Assert.IsNotNull(fromDb);
                Assert.AreNotSame(color, fromDb);
                Assert.AreEqual(color.Name, fromDb.Name);
                Assert.AreEqual(color.ShortName, fromDb.ShortName);
            }
        }
Exemplo n.º 24
0
    public void ColorDamage(float damage, MagicColor color)
    {
        if (!IsColored)
        {
            PureDamage(damage);
            return;
        }

        float dam = damage;

        switch (color.Compare(Color))
        {
        case -1:
            dam *= MagicColorStats.WeakDamage;
            break;

        case 1:
            dam *= MagicColorStats.SuperEffectiveDamage;
            break;
        }

        CurrentHealth -= dam;
    }
Exemplo n.º 25
0
    public void ChangeColor(MagicColor color)
    {
        Color = color;

        GetComponent <Graphic>().color = MagicColorStats.ColorMap[Color];
    }
Exemplo n.º 26
0
 // 根据位置来设置面片的颜色,适用于自动重新设置魔方颜色
 public void SetDefaultColor()
 {
     this.mycolor = MyMapPrefab.StyleColorMap [facestyle];
     this.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [MyMapPrefab.StyleColorMap [facestyle]];
 }
Exemplo n.º 27
0
    public void SetEditColor()
    {
        EditColorStore.Clear ();
        EditColorStore.Add (MagicColor.White, 0);
        EditColorStore.Add (MagicColor.Red, 0);
        EditColorStore.Add (MagicColor.Yellow, 0);
        EditColorStore.Add (MagicColor.Green, 0);
        EditColorStore.Add (MagicColor.Blue, 0);
        EditColorStore.Add (MagicColor.Orange, 0);
        EditColorStore.Add (MagicColor.None, 0);

        curColor = MagicColor.None;
        for (int i = 0; i < cubefaces.Length; i++) {
            if (cubefaces [i].cube.cubestyle.Equals (CubeStyle.Face)) {
                cubefaces [i].UpdateFaceStyle ();
                cubefaces [i].SetDefaultColor ();
            } else {
                cubefaces [i].SetEditColor (MagicColor.None);
            }
        }
    }
Exemplo n.º 28
0
 // 拾取颜色
 public void PickColor(MagicColor col)
 {
     curColor = col;
     print (curColor);
 }
Exemplo n.º 29
0
 public void ColorDelete(MagicColor color)
 {
     if (color != MagicColor.None) {
         EditColorStore [color] -= 1;
     }
 }
Exemplo n.º 30
0
 // 用户自定义编辑颜色(添加颜色之后应该同步修改块儿的记录)(编辑颜色要判断颜色的个数是否过多和组合是否重复)
 public void SetMapColor(MagicColor c)
 {
     this.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [c];
     mycolor = c;
 }
Exemplo n.º 31
0
 // 拾取颜色
 public void PickColor(MagicColor col)
 {
     curColor = col;
 }
Exemplo n.º 32
0
 // 拾取颜色
 public void PickColor(MagicColor col)
 {
     curColor = col;
 }
Exemplo n.º 33
0
 public virtual void Initialize(MagicColor color)
 {
     Visuals.Color = color;
     rb            = GetComponent <Rigidbody2D>();
 }
 /// <summary>
 /// Set random color for this pixel
 /// </summary>
 public void SetRandomColor()
 {
     Color = MagicColor.GetRandomColor();
 }
Exemplo n.º 35
0
    public void Initialize(Vector2 direction, MagicColor color)
    {
        base.Initialize(color);

        rb.velocity = direction.normalized * Speed;
    }
Exemplo n.º 36
0
 public override void OnPrismChange(MagicColor mode)
 {
     spriteRenderer.enabled = false;
 }
Exemplo n.º 37
0
 // 根据位置来设置面片的颜色,适用于自动重新设置魔方颜色
 public void SetDefaultColor()
 {
     this.mycolor = MyMapPrefab.StyleColorMap [facestyle];
     this.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [MyMapPrefab.StyleColorMap [facestyle]];
 }
Exemplo n.º 38
0
    public void Initialize(bool goingLeft, MagicColor color)
    {
        base.Initialize(color);

        rb.velocity = (goingLeft ? Vector3.left : Vector3.right) * Speed;
    }
 public void ChangeColor(MagicColor color)
 {
     Color    = color;
     sr.color = MagicColorStats.ColorMap[Color];
 }
    public void SetColor(MagicColor color)
    {
        var m = ParticleSystem.main;

        m.startColor = MagicColorStats.ColorMap[color];
    }
Exemplo n.º 41
0
    //	public void InitColor ()
    //	{
    //		SingleBoxPiece[] mypieces = GetComponentsInChildren <SingleBoxPiece> ();
    //		cubecolor.Clear ();
    //		foreach (SingleBoxPiece p in mypieces) {
    //			p.GetComponent <MeshRenderer> ().material.color = Color.gray;
    //			cubecolor.Add (p.gameObject, MagicColor.None);
    //		}
    //	}

    public void SetColor(GameObject p)
    {
        if (operater == null)
        {
            operater = FindObjectOfType <MyMagicCube> ();
        }
        MagicColor curcolor = operater.Color;

//		print (operater.EditColorStore [curcolor]);
        if (curcolor != MagicColor.None && operater.EditColorStore [curcolor] > 7)
        {
            //print ("此颜色已经编辑完成" + curcolor + operater.EditColorStore [curcolor]);
            return;
        }
        if (cubecolor.ContainsKey(p) && cubecolor [p] == curcolor)
        {
            //print ("颜色相同");
            return;
        }

        bool cansetcolor = true;

        if (editcolorfinished)
        {
            operater.ColorMapDelete(this);
        }

        MagicColor orignalcolor = MagicColor.None;

        // 如果字典里面有当前的物体,则为替换颜色,如果没有,则为添加颜色
        if (cubecolor.ContainsKey(p))
        {
            orignalcolor = cubecolor [p];
            // 这些只是为了防止同一个块上出现两个相同的颜色和对面的颜色
            foreach (GameObject g in cubecolor.Keys)
            {
                if (g != p)
                {
                    if (!cubecolor [g].Equals(MagicColor.None))
                    {
                        if (cubecolor [g] == curcolor)
                        {
                            cansetcolor = false;
                            //print ("此块已经有相同颜色,请勿重复编辑");
                            break;
                        }
                        int index = (int)curcolor;
                        if (index >= 3 && (int)cubecolor [g] == index - 3)
                        {
                            cansetcolor = false;
                            //print ("颜色不匹配");
                            break;
                        }
                        else if (index < 3 && (int)cubecolor [g] == index + 3)
                        {
                            cansetcolor = false;
                            //print ("颜色不匹配");
                            break;
                        }
                    }
                }
            }
        }
        else
        {
            cubecolor.Add(p, curcolor);
            //print ("添加新颜色");
        }

        // 这里先假设将颜色附上去,如果不合适再去掉
        if (cansetcolor)
        {
            cubecolor [p] = curcolor;
        }
        else
        {
            return;
        }

        // TODO: 判断是否完成当前cube的颜色设定,如果完成则保存到字典中,如果没有则等待完成
        if ((cubestyle == CubeStyle.Edge && cubecolor.Count == 2) || (cubestyle == CubeStyle.Corner && cubecolor.Count == 3))
        {
            editcolorfinished = true;
        }
        else
        {
            editcolorfinished = false;
        }

        if (editcolorfinished)
        {
//			foreach (GameObject g in cubecolor.Keys) {
//				editcolorfinished = true;
//				if (g.GetComponent <CubeFace> ().mycolor == MagicColor.None) {
//					editcolorfinished = false;
//				}
//			}
            if (cubecolor.ContainsValue(MagicColor.None))
            {
                editcolorfinished = false;
            }
        }

        if (editcolorfinished)
        {
            //print ("当前块的颜色已经设置完成");

            // TODO: 根据设定的颜色来标识当前cube,判断是否有重复
            CubeMark mark = GetCubeMark();
            if (operater.EditColorMap.ContainsValue(mark) && mark != CubeMark.None)
            {
                // print ("已经有这样的颜色块啦,请不要编辑错误了哦" + mark);
                cubecolor [p] = orignalcolor;
            }
            else
            {
                // print ("颜色编辑成功" + mark);

                operater.ColorDelete(orignalcolor);
                operater.ColorAdd();
                operater.ColorMapAdd(this, mark);
                p.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [curcolor];
            }
        }
        else
        {
            // print ("当前块的颜色尚未设置完成");
            operater.ColorDelete(orignalcolor);
            operater.ColorAdd();
            p.GetComponent <MeshRenderer> ().material.color = MyMapPrefab.ColorMap [curcolor];
        }
    }