private GameObject GetEmbedBulletHelper( MAction a, GameObject bullet, Callback callback, SBulletThenEmbedData data) { var raycast = bullet.AddComponent <SBulletThenEmbed>(); raycast.Action = a; raycast.Init(data); raycast.AddCallback(callback); return(bullet); }
private GameObject GetEmbedBullet(MHit hit, Callback callback, GameObject bullet, float speed) { var renderer = bullet.GetComponent <SpriteRenderer>(); renderer.sortingOrder = renderer.sortingOrder + 1; var a = hit.Data.Ability.Data.ParentAction; var proxy = a.Data.Source.Proxy; var data = new SBulletThenEmbedData(); data.EmbedSprite = this.GetBulletEmbedSprite(a); data.Epsilon = CombatGUIParams.DEFAULT_EPSILON; data.Handle = bullet; data.Speed = speed; var pos = hit.Data.Target.Handle.transform.position; if (hit.Data.Source.GameHandle.transform.position.x > pos.x) { pos.x += CombatGUIParams.X_CORRECTION; } else { pos.x -= CombatGUIParams.X_CORRECTION; } data.Target = pos; data.Offset = CombatGUIParams.BULLET_OFFSET; data.Rotation = CombatGUIParams.MAX_ROTATION; if (hit.Data.Target.Current != null && hit.Data.Target.Current.GetType().Equals(typeof(CChar))) { data.TargetChar = hit.Data.Target.Current as CChar; } data.TargetableObjects = this.GetEmbedBulletTargets(hit); if (a.Data.LWeapon && proxy.GetLWeapon() != null && proxy.GetLWeapon().Embed) { return(this.GetEmbedBulletHelper(a, bullet, callback, data)); } else if (proxy.GetRWeapon() != null && proxy.GetRWeapon().Embed) { return(this.GetEmbedBulletHelper(a, bullet, callback, data)); } return(null); }