Пример #1
0
 public override EffectAnimationEntity[] getPreUseAnimationEntity(MyCharacterController src, bool throwhit, params ObjectEntity[] targets)
 {
     var ret = new List<EffectAnimationEntity>();
     if (throwhit)
     {
         foreach (var target in targets)
         {
             var c = target as MyCharacterController;
             if (c != null)
             {
                 var entity = GameController.EffectAnimationController.singleshotEffect(BasisParameter.EffectAnimationName, c.Position, 1, 1, false);
                 entity.PlaySEName = BasisParameter.PlaySEName;
                 ret.Add(entity);
             }
         }
     }
     else
     {
         var cs = Array.FindAll(targets, t => t is MyCharacterController);
         if (cs.Length != 0)
         {
             foreach (var c in cs)
             {
                 var entity = GameController.EffectAnimationController.getEffectEntityWithLine(BasisParameter.EffectAnimationName, src.Position, c.Position);
                 entity.PlaySEName = BasisParameter.PlaySEName;
                 ret.Add(entity);
             }
         }
         else
         {
             var hit = src.rayCastAll(src.CurrentDirection, 1000, TagList.getLayerMask(TagList.Wall)).ToList();
             hit.RemoveAll(h => h.Position == src.CurrentPosition);
             Vector2 end;
             if (hit.Count != 0)
             {
                 end = hit[0].Position;
             }
             else
             {
                 end = MyCharacterController.directionDeltaToVector(src.CurrentDirection) * 20;
             }
             var entity = GameController.EffectAnimationController.getEffectEntityWithLine(BasisParameter.EffectAnimationName, src.Position, end);
             entity.PlaySEName = BasisParameter.PlaySEName;
             ret.Add(entity);
         }
     }
     return ret.ToArray();
 }
Пример #2
0
 protected override MyCharacterController getEffectTarget(MyCharacterController user)
 {
     var hit = user.rayCastAll(user.CurrentDirection, 1000, TagList.getLayerMask(TagList.Character));
     //GameController.PlayingLogger.addLogFormat("hits:{0}",hit.Length);
     if (hit.Length != 0) return hit[0] as MyCharacterController;
     return null;
 }