Exemple #1
0
    //
    public static MapViewNumbers Create(float x, float y, float z, int damage, bool crit, int offsX, int offsY, Player p)
    {
        AllodsTextRenderer textRenderer = new AllodsTextRenderer(Fonts.Font2, Font.Align.Center);

        textRenderer.Text = crit?"CRIT ":"" + (-damage).ToString();
        GameObject     gObject = textRenderer.GetNewGameObject(0.01f, null, 100);
        MapViewNumbers mvn     = gObject.AddComponent <MapViewNumbers>();

        mvn.X        = x;
        mvn.Y        = y;
        mvn.Z        = z;
        mvn.Number   = damage;
        mvn.Critical = crit;
        mvn.Player   = p;
        mvn.Count    = 0;
        mvn.OffsX    = offsX;
        mvn.OffsY    = offsY;

        mvn.GObject      = gObject;
        mvn.TextRenderer = textRenderer;

        mvn.GObject.name = string.Format("MapViewNumbers (damage = {0})", mvn.TextRenderer.Text);

        //
        return(mvn);
    }
Exemple #2
0
    private void SpawnDamageNumbers(float x, float y, float z, int damage, bool crit, int offsX, int offsY, Player p)
    {
        int fromX = Mathf.FloorToInt(x);
        int fromY = Mathf.FloorToInt(y);
        int toX   = Mathf.CeilToInt(x);
        int toY   = Mathf.CeilToInt(y);

        // check if any cell around this number is visible
        bool anyvisible = false;

        for (int cy = fromY; cy <= toY; cy++)
        {
            if (anyvisible)
            {
                break;
            }
            for (int cx = fromX; cx <= toX; cx++)
            {
                if (cx < 8 || cy < 8 ||
                    cx >= MapLogic.Instance.Width - 8 ||
                    cy >= MapLogic.Instance.Height - 8)
                {
                    continue;
                }
                if ((MapLogic.Instance.Nodes[cx, cy].Flags & MapNodeFlags.Visible) == 0)
                {
                    continue;
                }
                anyvisible = true;
                break;
            }
        }

        if (!anyvisible)
        {
            return;
        }

        MapViewNumbers mvn = MapViewNumbers.Create(x, y, z, damage, crit, offsX, offsY, p);

        mvn.transform.parent = transform;
    }