//SoundEffect soundEffect; public fishCatching() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; this.graphics.IsFullScreen = true; graphics.PreferredBackBufferWidth = 480; graphics.PreferredBackBufferHeight = 800; fishes[0] = new Fish(20, 20, false); fishes[1] = new Fish(200, 100, false); fishes[2] = new Fish(100, 480, false); fishes[3] = new Fish(50, 400, false); fishes[4] = new Fish(200, 40, false); fishes[5] = new Fish(200, 400, false); fishes[6] = new Fish(287, 180, false); fishes[7] = new Fish(160, 280, false); // Windows Phone 的默认帧速率为 30 fps。 TargetElapsedTime = TimeSpan.FromTicks(33333); // 延长锁定时的电池寿命。 InactiveSleepTime = TimeSpan.FromSeconds(1); }
void Handle_BulletHit(bool isMiss, Player p, Bullet b, Fish f) { if (!isMiss) { b.SelfDestroy(); } }
//struct FishAndOddsMulti //{ // public FishAndOddsMulti(Fish f,int oddMulti) // { // F = f; // OddMulti = oddMulti; // } // public Fish F; // public int OddMulti; //} public static void ProcessHit(Bullet b , Fish f) { switch(f.HittableTypeS) { case "Normal": Process_NormalFish(b,f); break; case "AreaBomb": Process_AreaBomb(b,f); break; case "SameTypeBomb": Process_FishTypeBomb2(b,f); break; case "FreezeBomb": Process_FreezeBomb(b, f); break; case "SameTypeBombEx": Process_FishTypeBombEx(b, f); break; default: if (Evt_HitExtension != null) Evt_HitExtension(b, f); break; } }
/// <summary> /// 水場に魚を1匹生成する /// 生成した魚はリストに格納される /// </summary> /// <param name="fish">魚</param> /// <param name="waterPlace">水場</param> public void CreateFish(Fish fish, WaterPlace waterPlace) { //不正検知 if(fish == null || waterPlace == null || fish.gameObject == null || waterPlace.gameObject == null) { Debug.LogError("CreateFishの引数に渡されたオブジェクトがNullでした"); return; } if(fish.gameObject.tag != "Fish") { Debug.LogError("Fishにタグが不適切なオブジェクトが渡されました\nタグに\"Fish\"を設定してください\nオブジェクト名 : " + fish.name); return; } if(waterPlace.gameObject.tag != "WaterPlace") { Debug.LogError("WaterPlaceにタグが不適切なオブジェクトが渡されました\nタグに\"WaterPlace\"を設定してください\nオブジェクト名 : " + waterPlace.name); return; } //生成場所の計算 Vector3 waterRange = waterPlace.gameObject.transform.lossyScale; waterRange.y = 0; waterRange.x = Random.Range(-waterRange.x, waterRange.x) / 5; waterRange.z = Random.Range(-waterRange.z, waterRange.z) / 5; //実体化 Fish f = new Fish(); f.fishPrefab = Instantiate(fish.gameObject, Vector3.up + waterPlace.gameObject.transform.position + waterRange, Quaternion.Euler(new Vector3(0, Random.Range(0, 360), 0))) as GameObject; //参照フィールドへの追加 fishes.Add(f); }
public void crash(Fish fish, Form1 form, ArrayList fishList) { collision = aquaticAnimal.Bounds.IntersectsWith(fish.aquaticAnimal.Bounds); if (collision==true) { if ((aquaticAnimal.ImageLocation.Equals(@"Resources\tiburon adulto.png") || aquaticAnimal.ImageLocation.Equals(@"Resources\tiburon hembra.png")) && (fish.aquaticAnimal.ImageLocation.Equals(@"Resources\Dorys.png") || fish.aquaticAnimal.ImageLocation.Equals(@"Resources\Nemo.png"))) { fishList.Remove(fish); fish.aquaticAnimal.Hide(); } else if ((aquaticAnimal.ImageLocation.Equals(@"Resources\Dorys.png") || aquaticAnimal.ImageLocation.Equals(@"Resources\Nemo.png")) && (fish.aquaticAnimal.ImageLocation.Equals(@"Resources\tiburon adulto.png") || fish.aquaticAnimal.ImageLocation.Equals(@"Resources\tiburon hembra.png"))) { fishList.Remove(aquaticAnimal); aquaticAnimal.Hide(); } else if ((aquaticAnimal.ImageLocation.Equals(@"Resources\Nemo.png") && fish.aquaticAnimal.ImageLocation.Equals(@"Resources\Nemo.png"))) { fishList.Remove(fish); aquaticAnimal.Hide(); } else if ((aquaticAnimal.ImageLocation.Equals(@"Resources\tiburon adulto.png") && fish.aquaticAnimal.ImageLocation.Equals(@"Resources\tiburon adulto.png"))) { fishList.Remove(aquaticAnimal); aquaticAnimal.Hide(); } } }
void Msg_FishGenerateWhenEnterWorld_Generated(Fish f) { Transform ts = Instantiate(Prefab_TsEffect) as Transform; ts.parent = f.transform; ts.localPosition = Vector3.zero; ts.localRotation = Quaternion.identity; }
public FishTO(Fish other) { this.name = other.name; this.id = other.id; if (other.weight != null) this.weight = other.weight.Value; if (other.length != null) this.length = other.length.Value; this.species = other.species; if (other.caughtDate != null) this.caughtDate = other.caughtDate.Value; if (other.tripId != null) this.tripId = other.tripId.Value; this.notes = other.notes; if (other.caughtTime != null) this.caughtTime = other.caughtTime.Value; if (other.girth != null) this.girth = other.girth.Value; this.spot = other.spot; this.presentation = other.presentation; if (other.depth != null) this.depth = other.depth.Value; if (other.clarity != null) this.clarity = other.clarity.Value; if (other.temperature != null) this.temperature = other.temperature.Value; }
public Mission(Fish Agent, Objective Obj, Func<BitArray> Targets, bool OverrideDropMission = false, bool AttackAlongTheWay = true) { m_agent = Agent; m_obj = Obj; m_targets = Targets; m_attackAlongTheWay = AttackAlongTheWay; m_overrideDropMission = OverrideDropMission; }
void Handle_FishBulletHit(bool isMiss, Player p, Bullet b, Fish f) { if(isMiss) { if (b.IsLockingFish) b.IsLockingFish = false; } }
public virtual void eat(Fish other) { if (_size <= other.size) { fishDeathEvent(this, new InfoEventArgs<int>(_size)); GameObject.Destroy(this.gameObject); } }
void Handle_BeforeEatFish(Fish eatter, Fish beEattedFish) { if (eatter.AniSprite.IsPlaying(AnimationToPlayName) && !IsContPlay) return; eatter.AniSprite.Play(AnimationToPlayName); }
public void keepFish(Fish caught) { caughtFish.Add(caught); TackleBoxUI.tackleBox.addFish(); Debug.Log("You caught a: " + caughtFish[caughtFish.Count - 1].getName() + " Weight: " + caughtFish[caughtFish.Count - 1].getWeight()); // return fishString; }
void Handle_FishKilled(Player killer, Bullet b, Fish f) { if (!mViewFishPrefabCache.ContainsKey(f.TypeIndex)) { return; } StartCoroutine(_Coro_EffectProcessing(b.Score * f.Odds * b.FishOddsMulti, killer, f.TimeDieAnimation, false)); }
void Handle_PlayerGainScoreFromFish(Player p, int score, Fish fishFirst,Bullet b) { if (GameMain.Singleton.BSSetting.OutBountyType_.Val == OutBountyType.OutCoinButtom || GameMain.Singleton.BSSetting.OutBountyType_.Val == OutBountyType.OutTicketButtom) { int oddNum = fishFirst.HittableTypeS == "Normal" ? fishFirst.Odds : (score / b.Score); CoinStacks[p.Idx].RequestViewOneStack(score, oddNum, b.Score); } }
public void AttachFish(Fish fish) { //ConfigurableJoint joint = fish.GetComponent<ConfigurableJoint>(); //joint.connectedBody = this.rigidbody; fish.rigidbody.isKinematic = true; fishAttached = fish; fishOutOfWater = false; }
public void LockAt(Player p,Fish f) { //Debug.Log("LockAt " + f.name + " p.idx = " + p.Idx); mLockedTarget[p.Idx] = f; p.GunInst.Rotatable = false; ModuleBullet.Fireable[p.Idx] = false; StartCoroutine(_Coro_Locking(p)); }
//IEnumerator Start() //{ // mFish = GetComponent<Fish>(); // if (mFish == null) // yield break; // mOriClipidx = mFish.AniSprite.clipId; // tk2dSpriteAnimationClip aniClip = mFish.AniSprite.anim.clips[mFish.AniSprite.anim.GetClipIdByName(AniName)]; // float aniLength = aniClip.frames.Length / aniClip.fps; // while (true) // { // yield return new WaitForSeconds(Interval); // mFish.AniSprite.Play(AniName,0F); // yield return new WaitForSeconds(aniLength); // mFish.AniSprite.Play(mOriClipidx,0F); // } //} void Awake() { mFish = GetComponent<Fish>(); if (mFish == null) return; mOriClipidx = mFish.AniSprite.DefaultClipId; tk2dSpriteAnimationClip aniClip = mFish.AniSprite.Library.clips[mFish.AniSprite.Library.GetClipIdByName(AniName)]; mSpecAniLength = aniClip.frames.Length / aniClip.fps; }
public void DetachFish() { if(fishAttached != null) { fishAttached.rigidbody.position = fishAttached.transform.position; fishAttached.rigidbody.velocity = Vector3.zero; fishAttached.rigidbody.isKinematic = true; fishAttached = null; } }
void Awake() { FishEx_FishEatter fe = GetComponent<FishEx_FishEatter>(); mFish = fe._Fish; mFish.AniSprite.AnimationCompleted += Handle_FishAniStop; if (fe != null) fe.EvtBeforeEatFish += Handle_BeforeEatFish; mOriginClip = mFish.AniSprite.DefaultClip; }
void Handle_Resumme( Fish f ) { if(f.TypeIndex == MyFish.TypeIndex&& isChangGenerator) { //Debug.Log( "inresumme" ); // float iSp = MySwimmer.Speed; MyFishGenerator.MaxFishAtWorld = mMaxFishAtWorldOrigin;//�ָ�ԭ���������Ŀ isChangGenerator = false; } }
void Handle_PlayerGainScoreFromFish(Player p, int score, Fish firstFish, Bullet b) { //���ʻ�������� if (firstFish.HittableTypeS == "Normal" && p.GunInst.GetPowerType() != GunPowerType.Lizi) { if (Random.Range(0F, 1F) < LiziRatio) { LiziGettors[p.Idx].GetLiziKaFrom(firstFish.transform.position); } } }
/// <summary> /// ���������������ʺ���(���������������ʼ�������ڽ�����) /// </summary> /// <param name="killer"></param> /// <param name="b"></param> /// <param name="f"></param> /// <returns></returns> HitProcessor.OperatorOddFix Func_GetFishOddAdditive(Player killer, Bullet b, Fish f, Fish fCauser) { if (fCauser.HittableTypeS == "Normal" && b.FishOddsMulti == 2) { return new HitProcessor.OperatorOddFix(HitProcessor.Operator.LastModule, 2); } else { return null; } }
public float[] WidthBulletNormal; //�ӵ����(������N����) #endregion Fields #region Methods HitProcessor.OperatorOddFix Func_GetFishDieRatioAddtive(Player killer, Bullet b, Fish f,Fish fCauser) { BulletEx_Splitor bSplitor = b.GetComponent<BulletEx_Splitor>(); if (bSplitor == null) { return null; } else { return new HitProcessor.OperatorOddFix(HitProcessor.Operator.LastModule, bSplitor.FactorSplit); } }
public string Go() { var dog = new Dog(); var bird = new Bird(); var fish = new Fish(); var dogSays = dog.Speak(); var birdSays = bird.Speak(); var fishSays = fish.Speak(); return dogSays + "\r\n" + birdSays + "\r\n" + fishSays + "\r\n"; }
void Handle_Change( Fish f ) { if(f.TypeIndex == MyFish.TypeIndex&&GameMain.State_ == GameMain.State.Normal&&!isChangGenerator) { MySwimmer = f.GetComponent<Swimmer>( ); //Debug.Log( "inchang" ); iSp = MySwimmer.Speed; StartCoroutine( "Waite" ); } }
public void Fire(Player from, Fish tar,Quaternion dir) { GameMain gm = GameMain.Singleton; if (tar != null) { mTargetFish = tar; IsLockingFish = true; Vector3 targetDir = tar.transform.position - mTs.position; targetDir.z = 0F; targetDir.Normalize(); targetDir = Quaternion.Euler(0F, 0F,Random.Range(-90F,90F)) * targetDir +from.transform.up;//�ó��ӵ�ƫ�� Random.Range(0,2)==0?-90F:90F mTs.rotation = Quaternion.FromToRotation(Vector3.up, targetDir); } else { IsLockingFish = false; mTs.rotation = dir; } mTs.parent = gm.TopLeftTs; Text_CoinNum.text = Score.ToString(); Text_CoinNum.Commit(); Owner = from; ++Owner.GunInst.NumBulletInWorld; BackStageSetting bss = gm.BSSetting; if (bss.IsBulletCrossWhenScreenNet.Val && gm.IsScreenNet()) MoveArea = gm.WorldDimension; else MoveArea = from.AtScreenArea; if (mBulletGO == null) { mBulletGO = Pool_GameObj.GetObj(Prefab_GoAnisprBullet); tk2dSpriteAnimator aniSprBullet = mBulletGO.GetComponent<tk2dSpriteAnimator>(); if (aniSprBullet != null) { //aniSprBullet.clipId = aniSprBullet.GetClipIdByName(Prefab_SpriteNameSet.Texts[from.Idx % Prefab_SpriteNameSet.Texts.Length]); //Debug.Log(Prefab_SpriteNameSet.Texts[from.Idx % Prefab_SpriteNameSet.Texts.Length]); aniSprBullet.Play(Prefab_SpriteNameSet.Texts[from.Idx % Prefab_SpriteNameSet.Texts.Length]); //aniSprBullet.PlayFrom("1",0.1F); } mBulletGO.SetActive(true); mBulletGO.transform.parent = mTs; mBulletGO.transform.localPosition = Vector3.zero; mBulletGO.transform.localRotation = Quaternion.identity; } }
void Handle_FishInstance(Fish f) { if (mIsLocking) return; if (f == null || !f.Attackable) return; if (TargetFish == null || f.TypeIndex != TargetFish.TypeIndex) return; StopCoroutine("_Coro_AllPlayerLock"); StartCoroutine("_Coro_AllPlayerLock",f); }
static void Main(string[] args) { Console.WriteLine("Введи путь до input-файла: "); string input = Console.ReadLine(); //Входной файл. Console.WriteLine("Введи путь до output-файла: "); string output = Console.ReadLine(); //Выходной файл. string[] lines = File.ReadAllLines(input); //Считывание строк. int numOfFish = 0; //Количество рыб. int numOfBird = 0; //Количество птиц. for (int i = 0; i < lines.Length; i++) { //Считаем кол-во животных. if (lines[i].Length == 1 && i % 2 == 0 && Char.IsDigit(lines[i], 0) == true && lines[i][0] == '1') numOfFish++; if (lines[i].Length == 1 && i % 2 == 0 && Char.IsDigit(lines[i], 0) == true && lines[i][0] == '2') numOfBird++; } Fish[] fish = new Fish[numOfFish]; Bird[] bird = new Bird[numOfBird]; int fishIndex = 0; //Индекс рыб. int birdIndex = 0; //Индекс птиц. for (int i = 0; i < lines.Length; i++) { if (lines[i].Length == 1 && i % 2 == 0 && lines[i][0] == '1') { //Obj[j, 0] = int.Parse(lines[i]); //Получаем тип животного. string[] split = lines[i + 1].Split(new Char[] { ' ', '\n' }); //Получаем имя и характеристики. string Name = split[0]; //Записываем имя int charact = int.Parse(split[1]); //и характеристику. fish[fishIndex] = new Fish(Name, charact); fishIndex++; } if (lines[i].Length == 1 && i % 2 == 0 && lines[i][0] == '2') { //Obj[j, 0] = int.Parse(lines[i]); //Получаем тип животного. string[] split = lines[i + 1].Split(new Char[] { ' ', '\n' }); //Получаем имя и характеристики. string Name = split[0]; //Записываем имя int charact = int.Parse(split[1]); //и характеристику. bird[birdIndex] = new Bird(Name, charact); birdIndex++; } } lines = null; string text = "\nПтицы:\n"; //Строка которая запишется в файл. for (int i = 0; i < numOfBird; i++) text += bird[i].print(); text += "\nРыбы:\n"; for (int i = 0; i < numOfFish; i++) text += fish[i].print(); Console.WriteLine(text); //Выводим результат в консоль File.WriteAllText(output, text, System.Text.Encoding.UTF8); //и записываем его в файл. Console.ReadKey(); //Тормозим консольку. }
//����Ŀ���� public void Lock(Fish tarFish) { if (tarFish == null) return; if (!IsLockable) return; //�ƶ����ȥĿ���㴦 StopCoroutine("_Coro_UnLockProcess"); StopCoroutine("_Coro_LockProcess"); StartCoroutine("_Coro_LockProcess", tarFish); }
private void OnEnable() { vehicle = GetComponent<Vehicle>(); vehicle.enabled = false; fish = GetComponent<Fish>(); fish.enabled = false; swimmingDirection = MathUtil.RandomSign; circleCenter = transform.position; if(UnityEngine.Random.value>0.5f) sens = -1f; }
public static void Main() { Cake cake = new Cake("sasa"); Fish fish = new Fish("sas", 51); }
static void Process_FishTypeBombEx(Bullet b, Fish sameTypeBombEx) { if (!sameTypeBombEx.Attackable) { return; } //Transform bulletTs = b.transform; Player bulletOwner = b.Owner; bool IsLockFishBullet = b.IsLockingFish; //找出屏幕上所有同类炸弹 List <Fish> fishMayDie = new List <Fish>(); fishMayDie.Add(sameTypeBombEx); //计算总的倍数 sameTypeBombEx.OddBonus = GetFishOddBonus(bulletOwner, b, sameTypeBombEx, sameTypeBombEx); int oddTotalAll = sameTypeBombEx.OddBonus; //sameTypeBombEx.Odds; int oddTotalAllForDieratio = GetFishOddForDieRatio(bulletOwner, b, sameTypeBombEx, sameTypeBombEx); //sameTypeBombEx.Odds + GetFishOddForDieRatio(bulletOwner, b, sameTypeBombEx, sameTypeBombEx);//用于赔率计算 Dictionary <int, object> mAllAffectFishDict = new Dictionary <int, object>(); //由同类炸弹杀死鱼的字典,(加入后代表'已处理',每次处理前都查询 ,可防止重复杀同一种鱼现象出现) //List<FishAndOddsMulti> fishNeedOddMulti = new List<FishAndOddsMulti>(); //遍历同类炸弹 foreach (Fish sameTypeBomb in GameMain.Singleton.FishGenerator.SameTypeBombs.Values) { List <Dictionary <int, Fish> > fishDicts = new List <Dictionary <int, Fish> >(); foreach (Fish affectFish in sameTypeBomb.Prefab_SameTypeBombAffect) { if (!mAllAffectFishDict.ContainsKey(affectFish.TypeIndex)) { fishDicts.Add(GameMain.Singleton.FishGenerator.FishTypeIndexMap[affectFish.TypeIndex]); mAllAffectFishDict.Add(affectFish.TypeIndex, null); } } //FishEx_OddsMulti oddsMultiComponent = sameTypeBomb.GetComponent<FishEx_OddsMulti>(); //int oddTotalSameTypeBombMulti = oddsMultiComponent == null ? 1 : oddsMultiComponent.OddsMulti; sameTypeBomb.OddBonus = GetFishOddBonus(bulletOwner, b, sameTypeBomb, sameTypeBombEx); int oddTotalSameTypeBomb = sameTypeBomb.OddBonus; //sameTypeBomb.Odds * oddTotalSameTypeBombMulti; int oddTotalSameTypeBombForCaclDieratio = GetFishOddForDieRatio(bulletOwner, b, sameTypeBomb, sameTypeBombEx); //sameTypeBomb.Odds * oddTotalSameTypeBombMulti + GetFishOddForDieRatio(bulletOwner, b, sameTypeBomb, sameTypeBombEx);//用于赔率计算 fishMayDie.Add(sameTypeBomb); //遍历同类炸弹影响到的鱼 foreach (Dictionary <int, Fish> fishDict in fishDicts) { if (fishDict != null) { foreach (Fish f in fishDict.Values) { if (f.Attackable && f.HittableTypeS == "Normal") //自己是HittableType.SameTypeBomb,不包含在内 { f.OddBonus = GetFishOddBonus(bulletOwner, b, f, sameTypeBomb); oddTotalSameTypeBomb += f.OddBonus; // f.Odds* oddTotalSameTypeBombMulti; oddTotalSameTypeBombForCaclDieratio += GetFishOddForDieRatio(bulletOwner, b, f, sameTypeBomb); // f.Odds * oddTotalSameTypeBombMulti + GetFishOddForDieRatio(bulletOwner, b, f, sameTypeBomb);//用于赔率计算 fishMayDie.Add(f); //if (oddTotalSameTypeBombMulti > 1) //{ // fishNeedOddMulti.Add(new FishAndOddsMulti(f, oddTotalSameTypeBombMulti)); //} } } } } oddTotalAll += oddTotalSameTypeBomb; oddTotalAllForDieratio += oddTotalSameTypeBombForCaclDieratio; } FishOddsData dataBomb = new FishOddsData(0, oddTotalAllForDieratio); List <FishOddsData> lstBombDie = GameOdds.OneBulletKillFish(b.Score, dataBomb, new List <FishOddsData>()); if (Evt_Hit != null) { Evt_Hit(oddTotalAllForDieratio == 0 ? true : false, bulletOwner, b, sameTypeBombEx); } if (lstBombDie.Count == 0)//不爆炸 { return; } ////确定鱼会死亡后将倍率改变加入到Fish上,让效果显示该鱼正确倍率 //foreach (FishAndOddsMulti fo in fishNeedOddMulti) //{ // FishEx_OddsMulti fodm = fo.F.gameObject.AddComponent<FishEx_OddsMulti>(); // fodm.OddsMulti = fo.OddMulti; //} int scoreTotalGetted = oddTotalAll * b.Score; //飞币效果(其他鱼死亡) foreach (Fish fDie in fishMayDie) { fDie.Kill(bulletOwner, b, 0F);//0.5秒间隔 } if (GameMain.EvtSameTypeBombExKiled != null) { GameMain.EvtSameTypeBombExKiled(bulletOwner, scoreTotalGetted); } //BackStageSetting bss = GameMain.Singleton.BSSetting; if (scoreTotalGetted != 0) { bulletOwner.GainScore(scoreTotalGetted); if (GameMain.Evt_PlayerGainScoreFromFish != null) { GameMain.Evt_PlayerGainScoreFromFish(bulletOwner, scoreTotalGetted, sameTypeBombEx, b); } //触发杀死锁定鱼事件 if (IsLockFishBullet && GameMain.EvtKillLockingFish != null) { GameMain.EvtKillLockingFish(bulletOwner); } } if (Evt_HitResult != null) { Evt_HitResult(!sameTypeBombEx.Attackable, bulletOwner, b, sameTypeBombEx); } }
static void Process_AreaBomb(Bullet b, Fish fishFirst) { if (!fishFirst.Attackable) { return; } Transform bulletTs = b.transform; Player bulletOwner = b.Owner; bool IsLockFishBullet = b.IsLockingFish; //生成碰撞范围 RaycastHit[] results = Physics.SphereCastAll(bulletTs.position - Bullet.ColliderOffsetZ, fishFirst.AreaBombRadius, Vector3.forward); //计算是否爆炸 List <Fish> fishAffect = new List <Fish>(); int oddTotal = 0; //用于奖励的倍率 int oddTotalForCaclDieratio = 0; //计算死亡几率的倍率 Fish tmpFish = null; foreach (RaycastHit hitObj in results) { tmpFish = hitObj.transform.GetComponent <Fish>(); if (tmpFish != null && tmpFish.Attackable && tmpFish.HittableTypeS == "Normal") { fishAffect.Add(tmpFish); oddTotalForCaclDieratio += GetFishOddForDieRatio(bulletOwner, b, tmpFish, fishFirst);//用于赔率计算; tmpFish.OddBonus = GetFishOddBonus(bulletOwner, b, tmpFish, fishFirst); oddTotal += tmpFish.OddBonus; } if (oddTotal > fishFirst.AreaBombOddLimit) { break; } } FishOddsData dataBomb = new FishOddsData(0, oddTotalForCaclDieratio); List <FishOddsData> lstBombDie = GameOdds.OneBulletKillFish(b.Score, dataBomb, new List <FishOddsData>()); if (Evt_Hit != null) { Evt_Hit(oddTotalForCaclDieratio == 0 ? true : false, bulletOwner, b, fishFirst); } if (lstBombDie.Count == 0)//不爆炸 { return; } fishFirst.Kill(bulletOwner, b, 0); //炸弹爆炸,杀范围内鱼 int scoreTotalGetted = oddTotal * b.Score; //触发事件 if (GameMain.EvtFishBombKilled != null) { GameMain.EvtFishBombKilled(bulletOwner, scoreTotalGetted); } //飞币效果(其他鱼死亡) foreach (Fish fDie in fishAffect) { fDie.Kill(bulletOwner, b, 0F);//0.5秒间隔 } //BackStageSetting bss = GameMain.Singleton.BSSetting; if (scoreTotalGetted != 0) { bulletOwner.GainScore(scoreTotalGetted); if (GameMain.Evt_PlayerGainScoreFromFish != null) { GameMain.Evt_PlayerGainScoreFromFish(bulletOwner, scoreTotalGetted, fishFirst, b); } //触发杀死锁定鱼事件 if (IsLockFishBullet && GameMain.EvtKillLockingFish != null) { GameMain.EvtKillLockingFish(bulletOwner); } } if (Evt_HitResult != null) { Evt_HitResult(!fishFirst.Attackable, bulletOwner, b, fishFirst); } }
public Fish CreateFish(FishSize newFishSize, CaughtFish fishTemplate) { Fish fish = new Fish(newFishSize, fishTemplate); return(fish); }
/// <summary> /// Put complex types that are polymorphic, attempting to omit required /// 'birthday' field - the request should not be allowed from the client /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='complexBody'> /// Please attempt put a sawshark that looks like this, the client should not /// allow this data to be sent: /// { /// "fishtype": "sawshark", /// "species": "snaggle toothed", /// "length": 18.5, /// "age": 2, /// "birthday": "2013-06-01T01:00:00Z", /// "location": "alaska", /// "picture": base64(FF FF FF FF FE), /// "siblings": [ /// { /// "fishtype": "shark", /// "species": "predator", /// "birthday": "2012-01-05T01:00:00Z", /// "length": 20, /// "age": 6 /// }, /// { /// "fishtype": "sawshark", /// "species": "dangerous", /// "picture": base64(FF FF FF FF FE), /// "length": 10, /// "age": 105 /// } /// ] /// } /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task PutValidMissingRequiredAsync(this IPolymorphism operations, Fish complexBody, CancellationToken cancellationToken = default(CancellationToken)) { await operations.PutValidMissingRequiredWithHttpMessagesAsync(complexBody, null, cancellationToken).ConfigureAwait(false); }
void OnDeath(Fish fish) { cur_count--; // 更新鱼的数量 }
/// <summary> /// Put complex types that are polymorphic /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='complexBody'> /// Please put a salmon that looks like this: /// { /// 'fishtype':'Salmon', /// 'location':'alaska', /// 'iswild':true, /// 'species':'king', /// 'length':1.0, /// 'siblings':[ /// { /// 'fishtype':'Shark', /// 'age':6, /// 'birthday': '2012-01-05T01:00:00Z', /// 'length':20.0, /// 'species':'predator', /// }, /// { /// 'fishtype':'Sawshark', /// 'age':105, /// 'birthday': '1900-01-05T01:00:00Z', /// 'length':10.0, /// 'picture': new Buffer([255, 255, 255, 255, 254]).toString('base64'), /// 'species':'dangerous', /// }, /// { /// 'fishtype': 'goblin', /// 'age': 1, /// 'birthday': '2015-08-08T00:00:00Z', /// 'length': 30.0, /// 'species': 'scary', /// 'jawsize': 5 /// } /// ] /// }; /// </param> public static void PutValid(this IPolymorphismOperations operations, Fish complexBody) { operations.PutValidAsync(complexBody).GetAwaiter().GetResult(); }
public void RemoveFish(Fish fish) { Organisms.Remove(fish); }
/// <summary> /// Put complex types that are polymorphic and have recursive references /// </summary> /// <param name='complexBody'> /// Please put a salmon that looks like this: /// { /// "fishtype": "salmon", /// "species": "king", /// "length": 1, /// "age": 1, /// "location": "alaska", /// "iswild": true, /// "siblings": [ /// { /// "fishtype": "shark", /// "species": "predator", /// "length": 20, /// "age": 6, /// "siblings": [ /// { /// "fishtype": "salmon", /// "species": "coho", /// "length": 2, /// "age": 2, /// "location": "atlantic", /// "iswild": true, /// "siblings": [ /// { /// "fishtype": "shark", /// "species": "predator", /// "length": 20, /// "age": 6 /// }, /// { /// "fishtype": "sawshark", /// "species": "dangerous", /// "length": 10, /// "age": 105 /// } /// ] /// }, /// { /// "fishtype": "sawshark", /// "species": "dangerous", /// "length": 10, /// "age": 105 /// } /// ] /// }, /// { /// "fishtype": "sawshark", /// "species": "dangerous", /// "length": 10, /// "age": 105 /// } /// ] /// } /// </param> /// <param name='customHeaders'> /// Headers that will be added to request. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> /// <exception cref="ErrorException"> /// Thrown when the operation returned an invalid status code /// </exception> /// <exception cref="ValidationException"> /// Thrown when a required parameter is null /// </exception> /// <exception cref="System.ArgumentNullException"> /// Thrown when a required parameter is null /// </exception> /// <return> /// A response object containing the response body and response headers. /// </return> public async Task <AzureOperationResponse> PutValidWithHttpMessagesAsync(Fish complexBody, Dictionary <string, List <string> > customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { if (complexBody == null) { throw new ValidationException(ValidationRules.CannotBeNull, "complexBody"); } if (complexBody != null) { complexBody.Validate(); } // Tracing bool _shouldTrace = ServiceClientTracing.IsEnabled; string _invocationId = null; if (_shouldTrace) { _invocationId = ServiceClientTracing.NextInvocationId.ToString(); Dictionary <string, object> tracingParameters = new Dictionary <string, object>(); tracingParameters.Add("complexBody", complexBody); tracingParameters.Add("cancellationToken", cancellationToken); ServiceClientTracing.Enter(_invocationId, this, "PutValid", tracingParameters); } // Construct URL var _baseUrl = Client.BaseUri.AbsoluteUri; var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "complex/polymorphicrecursive/valid").ToString(); List <string> _queryParameters = new List <string>(); if (_queryParameters.Count > 0) { _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); } // Create HTTP transport objects var _httpRequest = new HttpRequestMessage(); HttpResponseMessage _httpResponse = null; _httpRequest.Method = new HttpMethod("PUT"); _httpRequest.RequestUri = new System.Uri(_url); // Set Headers if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) { _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); } if (Client.AcceptLanguage != null) { if (_httpRequest.Headers.Contains("accept-language")) { _httpRequest.Headers.Remove("accept-language"); } _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); } if (customHeaders != null) { foreach (var _header in customHeaders) { if (_httpRequest.Headers.Contains(_header.Key)) { _httpRequest.Headers.Remove(_header.Key); } _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); } } // Serialize Request string _requestContent = null; if (complexBody != null) { _requestContent = Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(complexBody, Client.SerializationSettings); _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); } // Set Credentials if (Client.Credentials != null) { cancellationToken.ThrowIfCancellationRequested(); await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); } // Send Request if (_shouldTrace) { ServiceClientTracing.SendRequest(_invocationId, _httpRequest); } cancellationToken.ThrowIfCancellationRequested(); _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); if (_shouldTrace) { ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); } HttpStatusCode _statusCode = _httpResponse.StatusCode; cancellationToken.ThrowIfCancellationRequested(); string _responseContent = null; if ((int)_statusCode != 200) { var ex = new ErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); try { _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); Error _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject <Error>(_responseContent, Client.DeserializationSettings); if (_errorBody != null) { ex.Body = _errorBody; } } catch (JsonException) { // Ignore the exception } ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); if (_shouldTrace) { ServiceClientTracing.Error(_invocationId, ex); } _httpRequest.Dispose(); if (_httpResponse != null) { _httpResponse.Dispose(); } throw ex; } // Create Result var _result = new AzureOperationResponse(); _result.Request = _httpRequest; _result.Response = _httpResponse; if (_httpResponse.Headers.Contains("x-ms-request-id")) { _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); } if (_shouldTrace) { ServiceClientTracing.Exit(_invocationId, _result); } return(_result); }
public void AddFish(Fish fish) { Organisms.Add(fish); }
private static bool IsFishHungry(Fish fish) { return(fish.HP < 5); }
int GetIndexOfFishCaughtInList(Fish fish) { return(fishCaught.IndexOf(fish)); }
public bool getFishPhoto(Fish fish) { return(_fishPhotos[fish]); }
static void Process_FreezeBomb(Bullet b, Fish fishFirst) { //Debug.Log("Process_FreezeBomb"); if (!fishFirst.Attackable) { return; } //GameMain gm = GameMain.Singleton; //Transform bulletTs = b.transform; Player bulletOwner = b.Owner; bool IsLockFishBullet = b.IsLockingFish; //计算击中炸弹是否爆炸 int oddForDieRatio = GetFishOddForDieRatio(bulletOwner, b, fishFirst, fishFirst); FishOddsData freezeBomb = new FishOddsData(0, oddForDieRatio);//fishFirst.Odds + GetFishOddForDieRatio(bulletOwner, b, fishFirst,fishFirst));//用于赔率计算 List <FishOddsData> lstBombDie = GameOdds.OneBulletKillFish(b.Score, freezeBomb, new List <FishOddsData>()); if (Evt_Hit != null) { Evt_Hit(oddForDieRatio == 0 ? true : false, bulletOwner, b, fishFirst); } if (lstBombDie.Count == 0)//不爆炸 { return; } fishFirst.Kill(bulletOwner, b, 0F);//0.5秒间隔 //BackStageSetting bss = gm.BSSetting; fishFirst.OddBonus = GetFishOddBonus(bulletOwner, b, fishFirst, fishFirst); int scoreTotalGetted = b.Score * fishFirst.OddBonus; if (scoreTotalGetted != 0) { bulletOwner.GainScore(scoreTotalGetted); if (GameMain.Evt_PlayerGainScoreFromFish != null) { GameMain.Evt_PlayerGainScoreFromFish(bulletOwner, scoreTotalGetted, fishFirst, b); } //触发杀死锁定鱼事件 if (IsLockFishBullet && GameMain.EvtKillLockingFish != null) { GameMain.EvtKillLockingFish(bulletOwner); } } GameMain.IsMainProcessPause = true; if (GameMain.EvtFreezeBombActive != null) { GameMain.EvtFreezeBombActive(); } GameObject go = new GameObject("Delay_FreezeBombRecover"); go.AddComponent <FreezeBombRecover>(); if (Evt_HitResult != null) { Evt_HitResult(!fishFirst.Attackable, bulletOwner, b, fishFirst); } }
/// <summary> /// Put complex types that are polymorphic /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='complexBody'> /// Please put a salmon that looks like this: /// { /// 'fishtype':'Salmon', /// 'location':'alaska', /// 'iswild':true, /// 'species':'king', /// 'length':1.0, /// 'siblings':[ /// { /// 'fishtype':'Shark', /// 'age':6, /// 'birthday': '2012-01-05T01:00:00Z', /// 'length':20.0, /// 'species':'predator', /// }, /// { /// 'fishtype':'Sawshark', /// 'age':105, /// 'birthday': '1900-01-05T01:00:00Z', /// 'length':10.0, /// 'picture': new Buffer([255, 255, 255, 255, 254]).toString('base64'), /// 'species':'dangerous', /// }, /// { /// 'fishtype': 'goblin', /// 'age': 1, /// 'birthday': '2015-08-08T00:00:00Z', /// 'length': 30.0, /// 'species': 'scary', /// 'jawsize': 5 /// } /// ] /// }; /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task PutValidAsync(this IPolymorphismOperations operations, Fish complexBody, CancellationToken cancellationToken = default(CancellationToken)) { (await operations.PutValidWithHttpMessagesAsync(complexBody, null, cancellationToken).ConfigureAwait(false)).Dispose(); }
public void 오징어가_제대로_생성되는지_확인() { Fish f = FishFactory.Create(FishType.Squid); Assert.AreEqual(f.FishName, "오징어"); }
static void Main(string[] args) { var fish = new Fish(); }
public void 돌고래가_제대로_생성되는지_확인() { Fish f = FishFactory.Create(FishType.Dolphin); Assert.AreEqual(f.FishName, "돌고래"); }
public void Launch() { Fish fish = new Fish(20, 8); Seaweed[] sw = new Seaweed[6]; for (int i = 0; i < 6; i++) { if (i % 2 == 0) { sw[i] = new SeaweedLong((13 * i + 5), 16); } else { sw[i] = new SeaweedShort((13 * i + 5), 21); } } Bubble bubbleFish = new Bubble(fish.X, fish.Y); Bubble[] bubbleBackground = new Bubble[5]; for (int i = 0; i < 5; i++) { bubbleBackground[i] = new Bubble(20, 24); } Settings.RealSpeed = 10; Settings.ConsoleSpeed = 100; while (true) { Settings.UpdateScreenAndTimer(); //********* Background bubbles ************ if (Settings.Timer % 5 == 0) { launchBubble[amountBubble] = true; if (amountBubble < 4) { amountBubble++; } else { amountBubble = 0; } } int r = new Random().Next(0, 70); for (int i = 0; i < 5; i++) { if (launchBubble[i]) { bubbleBackground[i].MoveUp(r, 24, ConsoleColor.Blue); } } //**************** Fish ******************* fish.Draw(fish.X, fish.Y); fish.Move(); if (fish.X <= borderLeft || fish.X >= borderRight - 13) { fish.SpeedX = -fish.SpeedX; fish.TurnFish = fish.TurnFish ? fish.TurnFish = false : fish.TurnFish = true; } if (fish.Y <= borderTop + 4 || fish.Y >= borderBottom - 16) { fish.SpeedY = -fish.SpeedY; } if (!fish.TurnFish) { bubbleFish.MoveUp(fish.X, fish.Y + 3, ConsoleColor.Cyan); } else { bubbleFish.MoveUp(fish.X + 12, fish.Y + 3, ConsoleColor.Cyan); } if (Settings.Timer % 5 == 0) { fish.eyeClosed = fish.eyeClosed ? fish.eyeClosed = false : fish.eyeClosed = true; } //*************** Seaweeds ***************** foreach (Seaweed seaweed in sw) { seaweed.Draw(seaweed.X, seaweed.Y); } Thread.Sleep(Settings.ConsoleSpeed); } }
public void 돌고래의_등급이_희귀로_생성되는지_확인() { Fish f = FishFactory.Create(FishType.Dolphin); Assert.AreEqual(f.FishGrade, "희귀"); }
/// <summary> /// Put complex types that are polymorphic /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='complexBody'> /// Please put a salmon that looks like this: /// { /// 'fishtype':'Salmon', /// 'location':'alaska', /// 'iswild':true, /// 'species':'king', /// 'length':1.0, /// 'siblings':[ /// { /// 'fishtype':'Shark', /// 'age':6, /// 'birthday': '2012-01-05T01:00:00Z', /// 'length':20.0, /// 'species':'predator', /// }, /// { /// 'fishtype':'Sawshark', /// 'age':105, /// 'birthday': '1900-01-05T01:00:00Z', /// 'length':10.0, /// 'picture': new Buffer([255, 255, 255, 255, /// 254]).toString('base64'), /// 'species':'dangerous', /// }, /// { /// 'fishtype': 'goblin', /// 'age': 1, /// 'birthday': '2015-08-08T00:00:00Z', /// 'length': 30.0, /// 'species': 'scary', /// 'jawsize': 5 /// } /// ] /// }; /// </param> public static void PutValid(this IPolymorphism operations, Fish complexBody) { Task.Factory.StartNew(s => ((IPolymorphism)s).PutValidAsync(complexBody), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); }
IEnumerator _Coro_Generate() { int num = Random.Range(NumMin, NumMax + 1); int generatedNum = 0; yield return(0);//为取得transform.localPosition //生成leaderFish GameObject goLeader = new GameObject("领队_" + Prefab_Fish.name); Swimmer fishLeader = goLeader.AddComponent <Swimmer>(); goLeader.AddComponent <DestroyWhenSwimmerOut>(); if (GameMain.EvtLeaderInstance != null) { GameMain.EvtLeaderInstance(fishLeader); } //fishLeader.Attackable = false; Prefab_Fish.swimmer.CopyDataTo(fishLeader); fishLeader.SetLiveDimension(Defines.ClearFishRadius);//swim to fix fishLeader.RotateSpd = Fish_RotateSpd; fishLeader.Speed = Fish_Speed; FishAI_FreeSwimSingle fishAILeader = goLeader.AddComponent <FishAI_FreeSwimSingle>(); Prefab_Fish.GetComponent <FishAI_FreeSwimSingle>().CopyDataTo(fishAILeader); fishAILeader.enabled = false; fishAILeader.RotateAngleRndRange = Fish_RotateAngleRndRange; fishAILeader.RotateInterval = Fish_RotateInterval; fishAILeader.RotateIntervalRndRange = Fish_RotateIntervalRndRange; fishLeader.transform.parent = GameMain.Singleton.FishGenerator.transform; Vector3 localPos = transform.localPosition; localPos.z = Defines.GMDepth_Fish + GameMain.Singleton.FishGenerator.ApplyFishDepth(); fishLeader.transform.localPosition = localPos; fishLeader.transform.localRotation = transform.localRotation; fishLeader.Go(); Fish preFish = null; float distanceToLeader = 0F; while (generatedNum < num) { yield return(new WaitForSeconds((Distance + fishLeader.BoundCircleRadius * 2F) / fishLeader.Speed)); if (fishLeader == null) { break; } Fish f = Instantiate(Prefab_Fish) as Fish; Swimmer s = f.swimmer; f.name = Prefab_Fish.name; s.RotateSpd = Fish_RotateSpd; s.Speed = Fish_Speed; //动画设置 if (preFish != null) { //f.AniSprite.clipTime = preFish.AniSprite.clipTime; //f.AniSprite.Play(preFish.AniSprite.ClipTimeSeconds); f.AniSprite.PlayFrom(f.AniSprite.DefaultClip, preFish.AniSprite.ClipTimeSeconds); } //删除所有其他ai f.ClearAI(); FishAI_Follow aiFollow = f.gameObject.AddComponent <FishAI_Follow>(); aiFollow.SetTarget(fishLeader); distanceToLeader += (Distance + fishLeader.BoundCircleRadius * 2F); aiFollow.DistanceToLeader = distanceToLeader; //方位设置 f.transform.parent = GameMain.Singleton.FishGenerator.transform; localPos = transform.localPosition; localPos.z = Defines.GMDepth_Fish + GameMain.Singleton.FishGenerator.ApplyFishDepth(); f.transform.localPosition = localPos; f.transform.localRotation = transform.localRotation; s.Go(); ++generatedNum; preFish = f; } yield return(0); if (fishAILeader != null) { fishAILeader.enabled = true; } Destroy(gameObject); }
static void Process_FishTypeBomb2(Bullet b, Fish fishFirst) { if (!fishFirst.Attackable) { return; } //Transform bulletTs = b.transform; Player bulletOwner = b.Owner; bool IsLockFishBullet = b.IsLockingFish; int numTypeToBomb = fishFirst.Prefab_SameTypeBombAffect.Length; Dictionary <int, Fish>[] fishDicts = new Dictionary <int, Fish> [numTypeToBomb]; for (int i = 0; i != numTypeToBomb; ++i) { fishDicts[i] = GameMain.Singleton.FishGenerator.FishTypeIndexMap[fishFirst.Prefab_SameTypeBombAffect[i].TypeIndex]; } //计算是否爆炸 List <Fish> fishAffect = new List <Fish>(); fishAffect.Add(fishFirst); Fish tmpFish = null; //FishEx_OddsMulti sameTypeBombOddsMultiComponent = fishFirst.GetComponent<FishEx_OddsMulti>(); //int oddMulti = sameTypeBombOddsMultiComponent == null ? 1 : sameTypeBombOddsMultiComponent.OddsMulti; //List<Fish> fishNeedOddMulti = new List<Fish>(); fishFirst.OddBonus = GetFishOddBonus(bulletOwner, b, fishFirst, fishFirst); int oddTotal = fishFirst.OddBonus; //fishFirst.Odds * oddMulti;//用于奖励计算的倍率 int oddTotalForCaclDieratio = GetFishOddForDieRatio(bulletOwner, b, fishFirst, fishFirst); //fishFirst.Odds * oddMulti + GetFishOddForDieRatio(bulletOwner, b, fishFirst);//用于赔率计算 foreach (Dictionary <int, Fish> fishDict in fishDicts) { if (fishDict != null) { foreach (KeyValuePair <int, Fish> fKV in fishDict) { tmpFish = fKV.Value; if (tmpFish.Attackable && tmpFish.HittableTypeS == "Normal") //自己是HittableType.SameTypeBomb,不包含在内 { fishAffect.Add(tmpFish); tmpFish.OddBonus = GetFishOddBonus(bulletOwner, b, tmpFish, fishFirst); oddTotal += tmpFish.OddBonus; //tmpFish.Odds * oddMulti;//可以统一相乘,不过在这里牺牲一些效率,让代码更直观 oddTotalForCaclDieratio += GetFishOddForDieRatio(bulletOwner, b, tmpFish, fishFirst); //tmpFish.Odds * oddMulti + GetFishOddForDieRatio(bulletOwner, b, tmpFish);//用于赔率计算 //if (oddMulti > 1) //{ // fishNeedOddMulti.Add(tmpFish); //} } } } } FishOddsData dataBomb = new FishOddsData(0, oddTotalForCaclDieratio); //Debug.Log("oddTotalForCaclDieratio = " + oddTotalForCaclDieratio); List <FishOddsData> lstBombDie = GameOdds.OneBulletKillFish(b.Score, dataBomb, new List <FishOddsData>()); if (Evt_Hit != null) { Evt_Hit(oddTotalForCaclDieratio == 0? true:false, bulletOwner, b, fishFirst); } if (lstBombDie.Count == 0) { return; } //将鱼倍率相乘加入到鱼中,让效果处理正确显示 //foreach (Fish f in fishNeedOddMulti) //{ // FishEx_OddsMulti odm = f.gameObject.AddComponent<FishEx_OddsMulti>();//在死的鱼上加入组件,确定死亡倍数,(主要用于显示) // odm.OddsMulti = oddMulti; //} //炸弹爆炸 //计算获得分数 int scoreTotalGetted = oddTotal * b.Score; //飞币效果(其他鱼死亡) foreach (Fish fDie in fishAffect) { fDie.Kill(bulletOwner, b, 0F);//0.5秒间隔 } //触发事件 if (GameMain.EvtSameTypeBombKiled != null) { GameMain.EvtSameTypeBombKiled(bulletOwner, scoreTotalGetted); } //BackStageSetting bss = GameMain.Singleton.BSSetting; if (scoreTotalGetted != 0) { bulletOwner.GainScore(scoreTotalGetted); if (GameMain.Evt_PlayerGainScoreFromFish != null) { GameMain.Evt_PlayerGainScoreFromFish(bulletOwner, scoreTotalGetted, fishFirst, b); } //触发杀死锁定鱼事件 if (IsLockFishBullet && GameMain.EvtKillLockingFish != null) { GameMain.EvtKillLockingFish(bulletOwner); } } if (Evt_HitResult != null) { Evt_HitResult(!fishFirst.Attackable, bulletOwner, b, fishFirst); } }
private new void LoopFunc(StateMachineClient smc, Interaction <Sim, Terrain> .LoopData ld) { try { WaterTypes waterType = FishingSpot.GetWaterType(Hit.mType); EventTracker.SendEvent(new FishingLoopEvent(EventTypeId.kWentFishing, Actor, waterType, ld.mLifeTime)); Actor.TryGroupTalk(); //Actor.TrySinging(); Fishing skill = Actor.SkillManager.GetSkill <Fishing>(SkillNames.Fishing); if (mShowTns && (ld.mLifeTime > kTimeToShowFishingTns)) { string str; if (BaitInUse != null) { str = Common.LocalizeEAString("Gameplay/Objects/Fishing:NoFishWithBait"); } else { str = Common.LocalizeEAString("Gameplay/Objects/Fishing:NoFishNoBait"); } Actor.ShowTNSIfSelectable(str, StyledNotification.NotificationStyle.kGameMessagePositive, ObjectGuid.InvalidObjectGuid); if ((mLoopLengthForNextFish - ld.mLifeTime) < kTimeToCatchPostTns) { mLoopLengthForNextFish = ld.mLifeTime + kTimeToCatchPostTns; } mShowTns = false; } if (ld.mLifeTime > mLoopLengthForNextFish) { mLoopLengthForNextFish += mFishingData.GetNextFishTimeLength(mIsAngler, skill.IsFisherman()); FishType none = FishType.None; string baitUsed = null; if (BaitInUse != null) { baitUsed = BaitInUse.Key; } if (!mShowTns) { none = mFishingData.GetFishCaught(Actor, baitUsed); } if ((mSittingInBoatPosture != null) && (none == FishType.Box)) { none = FishType.None; } FishType type3 = none; if (type3 == FishType.None) { bool flag = false; if (Actor.TraitManager.HasElement(TraitNames.Clumsy)) { flag = RandomUtil.RandomChance01(kChanceOfPlayingLostFishAnimIfClumsy); } else { flag = RandomUtil.RandomChance01(kChanceOfPlayingLostFishAnim); } if (!flag) { return; } AnimateSim("CatchNothing"); } else if (type3 == FishType.Box) { int num = 0x0; WorldType currentWorldType = GameUtils.GetCurrentWorldType(); WorldName currentWorld = GameUtils.GetCurrentWorld(); List <int> list = new List <int>(); for (int i = 0x0; i < sBoxData.Count; i++) { BoxData data = sBoxData[i]; if (((data.AllowedWorldType == WorldType.Undefined) || (data.AllowedWorldType == currentWorldType)) && (((data.AllowedWorlds == null) || (data.AllowedWorlds.Count == 0x0)) || (data.AllowedWorlds.Contains(currentWorld) || data.AllowedWorlds.Contains(WorldName.Undefined)))) { num += sBoxChances[i]; list.Add(i); } } int chance = RandomUtil.GetInt(num - 0x1); int num4 = 0x0; foreach (int num5 in list) { num4 = num5; if (chance < sBoxChances[num5]) { break; } chance -= sBoxChances[num5]; } IGameObject obj2 = GlobalFunctions.CreateObject(sBoxData[num4].ItemName, Vector3.OutOfWorld, 0x1, Vector3.UnitZ); if (obj2 == null) { return; } bool happy = sBoxData[num4].Happy; if (Actor.TraitManager.HasElement(TraitNames.Insane)) { happy = !happy; } SetSplashAndDripEffects(EffectSize.Small); if (happy) { AnimateSim("CatchBoxHappy"); Actor.Inventory.TryToAdd(obj2, false); } else { AnimateSim("CatchBoxSad"); Actor.Inventory.TryToAdd(obj2, false); } Actor.ShowTNSIfSelectable(Common.LocalizeEAString(Actor.IsFemale, "Gameplay/Objects/Fishing:CaughtBox", new object[] { Actor, obj2 }), StyledNotification.NotificationStyle.kGameMessagePositive, obj2.ObjectId, Actor.ObjectId); } else { int num6; string str3; Fish actor = Fish.CreateFish(none, Actor, skill, BaitInUse, out num6, out str3); actor.UpdateVisualState(CatHuntingComponent.CatHuntingModelState.InInventory); mNumberFishCaught++; SetActor("fish", actor); SetSplashAndDripEffects(actor.EffectSize); PlayFishCatchAnimation(num6); if (str3 != null) { Actor.ShowTNSIfSelectable(str3, StyledNotification.NotificationStyle.kGameMessagePositive, actor.ObjectId, Actor.ObjectId); } EventTracker.SendEvent(new CaughtFishEvent(EventTypeId.kCaughtFish, Actor, actor, baitUsed)); Actor.Inventory.TryToAdd(actor, false); if ((BaitInUse != null) && RandomUtil.RandomChance(kPercentChanceBaitLost)) { Actor.Inventory.SetNotInUse(BaitInUse); Actor.Inventory.RemoveByForce(BaitInUse); IFishBait baitInUse = BaitInUse; BaitInUse = FindProperBait(new Fishing.BaitInfo(baitInUse)); if (BaitInUse == null) { ThoughtBalloonManager.BalloonData bd = new ThoughtBalloonManager.BalloonData(baitInUse.GetThoughtBalloonThumbnailKey()); bd.mCoolDown = ThoughtBalloonCooldown.Medium; bd.LowAxis = ThoughtBalloonAxis.kDislike; Actor.ThoughtBalloonManager.ShowBalloon(bd); Actor.InteractionQueue.FireQueueChanged(); string message = Common.LocalizeEAString(Actor.IsFemale, "Gameplay/Objects/Fishing:NoMoreBait", new object[] { Actor, baitInUse.GetLocalizedName() }); Actor.ShowTNSIfSelectable(message, StyledNotification.NotificationStyle.kGameMessagePositive, ObjectGuid.InvalidObjectGuid, Actor.ObjectId); } baitInUse.Destroy(); } } if (!ActiveStage.IsComplete((InteractionInstance)this)) { mCurrentStateMachine.SetParameter("skillLevel", skill.GetSkillLevelParameterForJazzGraph()); AnimateSim("Fish"); } } } catch (ResetException) { throw; } catch (Exception e) { Common.DebugException(Actor, Target, e); } }
static void Process_NormalFish(Bullet b, Fish fishFirst) { if (!fishFirst.Attackable) { return; } Transform bulletTs = b.transform; Player bulletOwner = b.Owner; bool IsLockFishBullet = b.IsLockingFish;//是否锁鱼的子弹 //生成碰撞范围 RaycastHit[] results = Physics.SphereCastAll(bulletTs.position - Bullet.ColliderOffsetZ, b.RadiusStandardBoom * 0.6F /** useWebScaleRatio.ScaleCollider //将要修正,不同子弹不同大小 */, Vector3.forward); List <Fish> fishAll = new List <Fish>(); List <Fish> fishOthers = new List <Fish>(); List <Fish> fishDieList = new List <Fish>(); fishAll.Add(fishFirst); Fish fishTmp = null; for (int i = 0; i != results.Length; ++i) { fishTmp = results[i].transform.GetComponent <Fish>(); if (fishTmp != null && fishFirst != fishTmp && fishTmp.Attackable && fishTmp.HittableTypeS == "Normal" && !fishTmp.HitByBulletOnly) { fishOthers.Add(fishTmp); fishAll.Add(fishTmp); } } List <FishOddsData> dataFishOtherList = new List <FishOddsData>(); foreach (Fish f in fishOthers) { dataFishOtherList.Add(new FishOddsData(f.ID, GetFishOddForDieRatio(bulletOwner, b, f, fishFirst))); //用于赔率计算 } FishOddsData dataFishFirst = new FishOddsData(fishFirst.ID, GetFishOddForDieRatio(bulletOwner, b, fishFirst, fishFirst)); //用于赔率计算 List <FishOddsData> dataFishDieLst = GameOdds.OneBulletKillFish(b.Score, dataFishFirst, dataFishOtherList); foreach (FishOddsData fishDie in dataFishDieLst) { foreach (Fish f in fishAll) { if (fishDie.ID == f.ID) { fishDieList.Add(f); break; } } } int numKilled = 0; int scoreTotalGetted = 0; foreach (Fish fDie in fishDieList) { fDie.OddBonus = GetFishOddBonus(bulletOwner, b, fDie, fishFirst);//显示赔率 scoreTotalGetted += fDie.OddBonus * b.Score; fDie.Kill(bulletOwner, b, 0.5F * numKilled);//0.5秒间隔 ++numKilled; } if (Evt_Hit != null) { Evt_Hit(dataFishFirst.Odds == 0?true:false, bulletOwner, b, fishFirst); } //BackStageSetting bss = GameMain.Singleton.BSSetting; if (scoreTotalGetted != 0) { bulletOwner.GainScore(scoreTotalGetted); if (GameMain.Evt_PlayerGainScoreFromFish != null) { GameMain.Evt_PlayerGainScoreFromFish(bulletOwner, scoreTotalGetted, fishFirst, b); } //触发杀死锁定鱼事件 if (IsLockFishBullet && GameMain.EvtKillLockingFish != null) { GameMain.EvtKillLockingFish(bulletOwner); } } if (Evt_HitResult != null) { Evt_HitResult(!fishFirst.Attackable, bulletOwner, b, fishFirst); } }
public void removePhoto(Fish fish) { _fishPhotos[fish] = false; }
// Use this for initialization void Start() { fish = GameObject.FindGameObjectWithTag("Fish").GetComponent <Fish>(); ammoText = GameObject.FindGameObjectWithTag("AmmoText").GetComponent <Text>(); }
public FishDetailViewController(UIViewController owner, Fish fish) { _ownerWeak = new WeakReference <UIViewController>(owner); _fish = fish; }
public async Task <IActionResult> PutFish(int id, Fish fish) { if (id != fish.fishID) { return(BadRequest()); } var sha1 = new SHA1CryptoServiceProvider(); ASCIIEncoding ascii = new ASCIIEncoding(); var del = fish.del; if (del == null) { del = ""; } var data = Encoding.ASCII.GetBytes(del); var sha1data = sha1.ComputeHash(data); var hashed = ascii.GetString(sha1data); var original = await _context.Fish.FindAsync(id); if (original == null) { return(NotFound()); } var password = original.del; if (password == null) { var emptyStr = Encoding.ASCII.GetBytes(""); var emptyHash = sha1.ComputeHash(emptyStr); password = ascii.GetString(emptyHash); } if (password == hashed) { _context.Fish.Remove(original); await _context.SaveChangesAsync(); return(NoContent()); } else { return(BadRequest()); } // ignore rest of method _context.Entry(fish).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FishExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public void ReassignFish(Fish fish) { StartCoroutine(ReassignFishCoro(fish)); }