예제 #1
0
 public void SetProjectile(SpellCreationSegment seg, ProjectileSpellBook sp)
 {
     spellSeg = seg;
     if (pm == null)
     {
         pm = gameObject.GetComponent <ProjectileMovement>();
     }
     pm.speed     = seg.GetSpeed();
     pm.turnSpeed = seg.GetTurnSpeed();
     spell        = sp;
     string[] layers = sp.layerMaskNames;
     foreach (Transform child in transform)
     {
         if (sp.source == ProjectileSpellBookBuilder.spellSource.enemy)
         {
             child.gameObject.layer = LayerMask.NameToLayer("ProjectileEnemy");
         }
         else if (sp.source == ProjectileSpellBookBuilder.spellSource.player)
         {
             child.gameObject.layer = LayerMask.NameToLayer("ProjectilePlayer");
         }
         else
         {
             child.gameObject.layer = LayerMask.NameToLayer("ProjectileNeutral");
         }
         child.gameObject.GetComponent <MovementCheck>().layerMask = LayerMask.GetMask(layers);
     }
 }
예제 #2
0
    public List <SpellCreationSegment> CreateSpellSegs(ISpellGrid grid, float damageMod)
    {
        SpellCreationSegment seg = new SpellCreationSegment();

        seg.AddEvent(new Wait(.15f, seg));
        seg.AddEvent(new SpellEnd());

        SpellCreationSegment seg1 = new SpellCreationSegment();

        seg1.AddEvent(new Wait(.15f, seg));
        seg1.AddEvent(new SpellEnd());
        seg1.SetStartingRotation(-12);

        SpellCreationSegment seg2 = new SpellCreationSegment();

        seg2.AddEvent(new Wait(.15f, seg));
        seg2.AddEvent(new SpellEnd());
        seg2.SetStartingRotation(12);

        List <SpellCreationSegment> segs = new List <SpellCreationSegment>();

        segs.Add(seg);
        segs.Add(seg1);
        segs.Add(seg2);

        return(segs);
    }
예제 #3
0
    public List <SpellCreationSegment> CreateSpellSegs(ISpellGrid grid, float damageMod)
    {
        SpellCreationSegment seg = new SpellCreationSegment();

        seg.AddEvent(new Wait(40, seg));
        seg.AddEvent(new SpellEnd());
        List <SpellCreationSegment> segs = new List <SpellCreationSegment> ();

        segs.Add(seg);
        return(segs);
    }
예제 #4
0
    public List <SpellCreationSegment> CreateSpellSegs(ISpellGrid grid, float damageMod)
    {
        List <SpellCreationSegment> segs = new List <SpellCreationSegment> ();

        for (int i = 0; i < 8; i++)
        {
            SpellCreationSegment seg = new SpellCreationSegment();
            seg.SetSpeedMod(.5f);
            seg.SetStartingRotation(i * 45);
            seg.AddEvent(new Wait(7, seg));
            seg.AddEvent(new SpellEnd());
            segs.Add(seg);
        }
        return(segs);
    }
예제 #5
0
    public List <SpellCreationSegment> CreateSpellSegs(ISpellGrid grid, float damageMod)
    {
        List <SpellCreationSegment> segs = new List <SpellCreationSegment>();

        for (int i = 0; i < 4; i++)
        {
            SpellCreationSegment seg = new SpellCreationSegment();
            seg.SetStartingRotation((5 * i) - Random.Range(10, 40));
            seg.AddEvent(new SpellMove(Random.Range(0, 2), seg));
            seg.AddEvent(new Wait(12, seg));
            seg.AddEvent(new SpellEnd());
            segs.Add(seg);
        }
        return(segs);
    }
예제 #6
0
    public List <SpellCreationSegment> CreateSpellSegs(ISpellGrid grid, float damageMod)
    {
        SpellCreationSegment seg = new SpellCreationSegment();

        seg.SetStartingRotation(0);
        seg.SetTurnSpeed(200);

        seg.AddEvent(new Wait(8f, seg));
        seg.AddEvent(new Turn(-160, seg));
        seg.AddEvent(new Wait(9f, seg));
        seg.AddEvent(new SpellEnd());
        List <SpellCreationSegment> segs = new List <SpellCreationSegment>();

        segs.Add(seg);
        return(segs);
    }
예제 #7
0
    public List <SpellCreationSegment> CreateSpellSegs(ISpellGrid grid, float damageMod)
    {
        List <SpellCreationSegment> segs = new List <SpellCreationSegment> ();

        for (int i = 0; i < 8; i++)
        {
            SpellCreationSegment seg = new SpellCreationSegment();
            seg.SetStartingRotation(i * 360 / 8);
            seg.SetTurnSpeed(100);

            //seg.AddEvent(new SpellMove(1, seg));
            seg.AddEvent(new Wait(2, seg));
            seg.AddEvent(new SpeedChange(.01f, seg));
            seg.AddEvent(new Turn(90, seg));
            seg.AddEvent(new Wait(5, seg));
            seg.AddEvent(new SpeedChange(1, seg));
            seg.AddEvent(new Wait(20, seg));
            seg.AddEvent(new SpellEnd());
            segs.Add(seg);
        }
        return(segs);
    }
예제 #8
0
    public List <SpellCreationSegment> CreateSpellSegs(ISpellGrid grid, float damageMod)
    {
        List <SpellCreationSegment> segs = new List <SpellCreationSegment>();
        Vector2 maxRange = new Vector2(2.1f, 2.1f);
        Vector2 minRange = new Vector2(-2.1f, -2.1f);

        SpellBook            book = SpellBookRain(grid);
        SpellCreationSegment seg  = new SpellCreationSegment();

        seg.makePixels = false;

        seg.AddEvent(new SpeedChange(.001f, seg));
        seg.AddEvent(new SpellFaceEvent(new Vector3(0, 0, -90), seg));
        for (int i = 0; i < 8; i++)
        {
            seg.AddEvent(new SpellCastEvent(book, minRange, maxRange));
            seg.AddEvent(new Wait(0.25f, 1f, seg));
        }
        seg.AddEvent(new SpellEnd());
        segs.Add(seg);

        return(segs);
    }
예제 #9
0
    public List <SpellCreationSegment> CreateSpellSegs(ISpellGrid grid, float damageMod)
    {
        List <SpellCreationSegment> segs = new List <SpellCreationSegment>();

        for (int i = 0; i < 7; i++)
        {
            SpellCreationSegment seg = new SpellCreationSegment();

            float sign = -1;
            if (51 * i > 180)
            {
                sign = 1;
            }

            seg.SetStartingRotation(51 * i);
            seg.AddEvent(new Turn(51 * i * sign, seg));
            seg.AddEvent(new Wait(20, seg));
            seg.AddEvent(new SpellEnd());
            seg.SetTurnSpeed(300);
            segs.Add(seg);
        }
        return(segs);
    }
예제 #10
0
 public override void AdjustForSpeed(SpellCreationSegment seg)
 {
     return;
 }
예제 #11
0
 abstract public void AdjustForSpeed(SpellCreationSegment seg);
예제 #12
0
 public SpellFaceEvent(Vector3 dir, SpellCreationSegment segment)
 {
     seg  = segment;
     _dir = dir;
 }
예제 #13
0
 public Wait(float a, float b, SpellCreationSegment segment)
 {
     seg = segment;
     min = a;
     max = b;
 }
예제 #14
0
 public SpeedChange(float speed, SpellCreationSegment segment)
 {
     mSpeed = speed;
     seg    = segment;
 }
예제 #15
0
 public SpellMove(float dist, SpellCreationSegment segment)
 {
     moveAmt = dist;
     seg     = segment;
 }
예제 #16
0
 public override void AdjustForSpeed(SpellCreationSegment seg)
 {
     return;
     //rotationAmt = rotationAmt / seg.GetTurnSpeed();
 }
예제 #17
0
 public Turn(float rotation, SpellCreationSegment segment)
 {
     seg         = segment;
     rotationAmt = rotation;
 }
예제 #18
0
 public Wait(float a, SpellCreationSegment segment)
 {
     seg = segment;
     amt = a;
 }