protected virtual void Init() { //var dt1 = DateTime.ParseExact(RunParams.StartYM.ToString(), "yyyyMM", CultureInfo.CurrentCulture); //var dt2 = DateTime.ParseExact(Pol.Rec.cont.contYM.ToString(), "yyyyMM", CultureInfo.CurrentCulture); //ElapsedMth = (dt1.Year - dt2.Year) * 12 + (dt1.Month - dt2.Month) + 1, p = new ProjParams(); p.CurrentMth = Pol.Rec.ElapsedMth; p.CurrentYr = (Pol.Rec.ElapsedMth - 1) / 12 + 1; p.CurrentAge = Pol.Rec.ContAge + Pol.Rec.ElapsedMth / 12; p.ProjPeriod = GetProjMth(Pol) - Pol.Rec.ElapsedMth; // 상품별로 구현 v.FundsCnt = 3; v.Navs = new double[v.FundsCnt]; v.PremAlloRates = new double[v.FundsCnt]; InitScenarios(); v.AccumPrem = Math.Min(Pol.Rec.PremYr * 12, Pol.Rec.ElapsedMth) * Pol.Rec.Prem; v.Navs[0] = Pol.Rec.FundVal01; v.Navs[1] = Pol.Rec.FundVal02; v.Navs[2] = Pol.Rec.FundVal03; v.PremAlloRates[0] = Pol.Rec.FundAllo01 / 100.0; v.PremAlloRates[1] = Pol.Rec.FundAllo02 / 100.0; v.PremAlloRates[2] = Pol.Rec.FundAllo03 / 100.0; v.DiscountedFactorBOP = 1.0; v.LivesBOP = 1.0; Prd = new Product(Pol.Rec.ProdCode); MaxAge = Pol.MortRates.Keys.Max(); }
// OnActivate is called once when the weapon is activated protected override void OnActivate(Vector3 start, Vector3 direction, PlayerController targetController = null) { Vector3 shootPoint = player.controller.ShootPoint.transform.position; Vector3 spacingDirection = player.controller.ShootPoint.transform.right; Vector3 targetLocation = shootPoint + player.controller.ShootPoint.transform.forward * data.targetDistance; ProjParams[] projParams = new ProjParams[data.fireOrder.Length]; // Set up the origin and direction for each projectile for (int i = 0; i < data.fireOrder.Length; ++i) { projParams[i].origin = shootPoint + spacingDirection * (((data.fireOrder.Length - 1) * data.bulletSpacing / -2) + data.fireOrder[i] * data.bulletSpacing); projParams[i].direction = Quaternion.LookRotation(targetLocation - projParams[i].origin, player.controller.ShootPoint.transform.up); } player.controller.StartCoroutine(delayedShoot(data.timeBetweenBullets)); IEnumerator delayedShoot(float time) { float startTime = Time.time; GameManager.instance.audioManager.Play("Icicle"); for (int i = 0; i < projParams.Length; ++i) { data.projectile.Shoot(player, data.projSpeed, projParams[i].origin, projParams[i].direction, (Vector3 origin, Vector3 contactPoint, GameObject target) => { Hit(origin, contactPoint, target); }); while (Time.time < startTime + time * (i + 1)) { yield return(null); } } } }
protected void SetMonthlyResult(ProjParams p, ProjVars v) { if (p.ProjMth == 1) { MthlyVars = new List <object[]>(); List <object> names = new List <object>(); names.AddRange(GetObjNames(p)); names.AddRange(GetObjNames(v)); MthlyVars.Add(names.ToArray()); } List <object> vals = new List <object>(); vals.AddRange(GetObjValues(p)); vals.AddRange(GetObjValues(v)); MthlyVars.Add(vals.ToArray()); }