コード例 #1
0
 public MeteorsGenerator(PlaySettings ss, RandomItem <int> carSizeDistribution, RandomItem <int> carAmountDistribution,
                         RandomItem <int> metAmountDistribution, int minCount, int maxCount,
                         Transform launcher)
 {
     if (carAmountDistribution.Items.Min() < 2 ||
         carAmountDistribution.Items.Max() > ss.Road.LinesCount ||
         metAmountDistribution.Items.Min() < 1 ||
         metAmountDistribution.Items.Max() >= carAmountDistribution.Items.Max())
     {
         throw new ArgumentOutOfRangeException();
     }
     _blockGen       = new BlockGenerator(ss, carSizeDistribution, carAmountDistribution);
     _metAmountDistr = metAmountDistribution;
     _carCountDistr  = carAmountDistribution;
     _carSizeDistr   = carSizeDistribution;
     _launcher       = launcher;
     _ss             = ss;
     _minCount       = minCount;
     _maxCount       = maxCount;
     _lowerBounds    = new float[_ss.Road.LinesCount];
     _topBounds      = new float[_ss.Road.LinesCount];
     _lastOnLine     = new CarDescriptor[_ss.Road.LinesCount];
     _isActual       = new bool[_ss.Road.LinesCount];
     _isMeteorTarget = new bool[_ss.Road.LinesCount];
 }
コード例 #2
0
    // 1. Play
    public static AudioElement PlayElement(string name, PlaySettings playSettings)
    {
        AudioElement e = GetElement(name);

        e.Play(playSettings);
        return(e);
    }
コード例 #3
0
    public void SetLevel(Level level)
    {
        if (_gameOn)
        {
            EndLevel();
        }
        _level = level;
        _taskCtrl.SetLevel(level);

        _difficultCtrl = level.DifficultCtrl;
        _playSets      = level.PlaySettings;
        _mainProvider.SetGenerator(level.MultiGenerator);

        _avatarCtrl.Avatar.Init(_playSets.MaxJumpDistance, _playSets.MinJumpDistance,
                                _playSets.HorizontalVelocity, _playSets.PowerTime, _playSets.MaxJumpHeight);
        _avatarCtrl.Pointer.Init(_playSets.MaxJumpDistance, .4f, _playSets.MinJumpDistance);

        Vehicle.Road = _playSets.Road;

        _firstCarDesc.Velocity   = _playSets.NormalCarSpeed;
        _pursuitCtrl.MinVelocity = _playSets.MinPursuitVelocity;
        float t1 = (_playSets.MaxJumpDistance - _playSets.MinCarGap) / (2 * _playSets.MaxJumpDistance) * _playSets.PowerTime;
        float t2 = (_playSets.MaxJumpDistance - _playSets.MinCarGap) / _playSets.HorizontalVelocity;

        _pursuitCtrl.MaxVelocity = _playSets.MaxCarSpeed * t1 / (t1 + t2) + (_playSets.MaxCarSpeed + _playSets.HorizontalVelocity) * t2 / (t1 + t2);
        _pursuitCtrl.SetPursuitBoundsFactors(.5f, .99f);        //todo something?
    }
コード例 #4
0
        private void PlaySound(SoundResource sound)
        {
            // Adjust the sound back to normal settings if it is a looping sound that is already playing
            if ((currentPlayHandle != null) && currentPlayHandle.IsPlaying() && Looping)
            {
                AdjustSound(Loudness, PitchOffset);
                return;
            }

            StopSound(false);

            PlaySettings playSettings = (Looping ? PlaySettings.Looped : PlaySettings.PlayOnce);

            playSettings.DontSync   = false;
            playSettings.Loudness   = LoudnessPercentToDb(Loudness + LoudnessVariance * RandomNegOneToOne());
            playSettings.PitchShift = PitchOffset + PitchVariance * RandomNegOneToOne();

            if (Spatialized)
            {
                if (audio != null)
                {
                    currentPlayHandle = audio.PlaySoundOnComponent(sound, playSettings);
                }
                else
                {
                    currentPlayHandle = ScenePrivate.PlaySoundAtPosition(sound, ObjectPrivate.Position, playSettings);
                }
            }
            else
            {
                currentPlayHandle = ScenePrivate.PlaySound(sound, playSettings);
            }
        }
コード例 #5
0
 public static void Postfix(PlaySettings __instance)
 {
     if (Mod.settings.autorebuildDefaultOn)
     {
         __instance.autoRebuild = true;
     }
 }
コード例 #6
0
    // 1. Play
    public static Category PlayCategory(string name, PlaySettings playSettings)
    {
        Category c = GetCategory(name);

        c.Play(playSettings);
        return(c);
    }
コード例 #7
0
 public Level(PlaySettings ps, DifficultController dc, string name, MultiGenerator gen, params ITask[] tasks)
 {
     Name           = name;
     PlaySettings   = ps;
     DifficultCtrl  = dc;
     Tasks          = tasks;
     MultiGenerator = gen;
 }
コード例 #8
0
    public override void Init()
    {
        PlaySettings playSettings = Play_Once ? PlaySettings.PlayOnce : PlaySettings.Looped;

        playSettings.Loudness = RelativePercentToRelativeLoudnessDB(Volume_Diff_Percent);
        playSettings.DontSync = Dont_Sync;
        ScenePrivate.PlaySound(Sound, playSettings);
    }
コード例 #9
0
 public PoliceGenerator(PlaySettings ss, float sideSpeed, float radius, float sandvichProb = 0)
 {
     SS            = ss;
     _sandvichProb = sandvichProb;
     _blockGen     = new BlockGenerator(SS, new RandomItem <int>(new[] { 1 }), null);
     _sideSpeed    = sideSpeed;
     _radius       = radius;
 }
コード例 #10
0
 public void IncDifficult(PlaySettings ps)
 {
     if (_rule == null)
     {
         return;
     }
     _rule.Invoke(ps, _i);
     ++_i;
 }
コード例 #11
0
ファイル: Category.cs プロジェクト: jayvachon/pharaohs-dance
 public override void Play(PlaySettings playSettings)
 {
     foreach (AudioElement e in elements) {
         e.Play (playSettings);
     }
     foreach (Category c in subcategories) {
         c.Play (playSettings);
     }
 }
コード例 #12
0
        private void PlaySound(SoundResource sound)
        {
            PlaySettings playSettings = PlaySettings.PlayOnce;

            playSettings.Loudness   = LoudnessPercentToDb(Loudness);
            playSettings.PitchShift = PitchVariance * RandomNegOneToOne();

            audio.PlaySoundOnComponent(sound, playSettings);
        }
コード例 #13
0
    void Awake()
    {
        healthBar = GetComponentInChildren <Image>();
        view      = GetComponent <PhotonView>();
        visuals   = GetComponent <SpriteRenderer>();

        playSettings     = Resources.Load <PlaySettings>("Settings/PlaySettings");
        arenaSettings    = Resources.Load <ArenaSettings>("Settings/ArenaSettings");
        killEffectPrefab = Resources.Load <GameObject>("KillEffect");
    }
コード例 #14
0
 public SoloMeteorGenerator(PlaySettings ss, float minDelay, float maxDelay, float addVelocity,
                            RandomItem <int> secondBlockCarAmntDistr)
 {
     SS = ss;
     _carAmountDistr = secondBlockCarAmntDistr;
     _blockGen       = new BlockGenerator(SS, new RandomItem <int>(new[] { 1, 2 }), _carAmountDistr);
     _minDelay       = minDelay;
     _maxDelay       = maxDelay;
     _addVelocity    = addVelocity;
 }
コード例 #15
0
 public SlidingCarGenerator(PlaySettings ss, int minCount, int maxCount, float minAngle, float maxAngle,
                            float minSideSpeed, float maxSideSpeed)
 {
     _ss           = ss;
     _minCount     = minCount + InitialCarsCount;
     _maxCount     = maxCount + InitialCarsCount;
     _minAngle     = minAngle;
     _maxAngle     = maxAngle;
     _minSideSpeed = minSideSpeed;
     _maxSideSpeed = maxSideSpeed;
 }
コード例 #16
0
 public override void Play(PlaySettings playSettings)
 {
     foreach (AudioElement e in elements)
     {
         e.Play(playSettings);
     }
     foreach (Category c in subcategories)
     {
         c.Play(playSettings);
     }
 }
コード例 #17
0
    private void PlayNote(SoundResource PlaySample, float PitchShiftIn)
    {
        bool NoLoop = true;

        playSettings = NoLoop ? PlaySettings.PlayOnce : PlaySettings.Looped;

        playSettings.Loudness   = loudnessIn; // set in Configuration
        playSettings.DontSync   = true;       // TrackDont_Sync[LoopIn2];
        playSettings.PitchShift = PitchShiftIn;
        //playHandle[LoopIn2] = ScenePrivate.PlaySound(TrackSamples[LoopIn2][PlayIndexIn], playSettings);
        playHandleSimple = ScenePrivate.PlaySound(PlaySample, playSettings);
    }
コード例 #18
0
    public IEnumerator CoPlayOnBeat(PlaySettings ps)
    {
        yield return StartCoroutine (DelayAndSnap (ps.metronome, ps.snapStyle, ps.beat, ps.delay));

        if (!stopping) {
            AudioClip ac = Play (ps.fadeLength, ps.fadeType, ps.power, clips.GetClip (), false);
            if (ps.loop) {
                looping = true;
                StartCoroutine (Loop (ps.metronome, ac));
            }
        }
    }
コード例 #19
0
    public bool Initialize(PlaySettings settings)
    {
        this.settings = settings;

        GameManager.Instance.stateChanged -= GameStateChanged;
        GameManager.Instance.stateChanged += GameStateChanged;
        GameManager.Instance.fixedUpdated -= DoUpdate;
        GameManager.Instance.fixedUpdated += DoUpdate;

        isInitialized = true;
        return(isInitialized);
    }
コード例 #20
0
 public WobbleModifier(PlaySettings ps, float halfPeriodLenMin, float halfPeriodLenMax,
                       float pointerNotAvatarContactProb, int count = 1) : base(count)
 {
     if (pointerNotAvatarContactProb < 0 || pointerNotAvatarContactProb > 1)
     {
         throw new ArgumentException("Bad probability");
     }
     _halfPeriodLenMin            = halfPeriodLenMin;
     _halfPeriodLenMax            = halfPeriodLenMax;
     _pointerNotAvatarContactProb = pointerNotAvatarContactProb;
     _ps = ps;
 }
コード例 #21
0
    public override void Init()
    {
        AudioComponent audioComp = null;

        ObjectPrivate.TryGetFirstComponent(out audioComp);
        if (audioComp != null)
        {
            PlaySettings playSettings = Play_Once ? PlaySettings.PlayOnce : PlaySettings.Looped;
            playSettings.Loudness = RelativePercentToRelativeLoudnessDB(Volume_Diff_Percent);
            playSettings.DontSync = Dont_Sync;
            audioComp.PlaySoundOnComponent(Sound, playSettings);
        }
    }
コード例 #22
0
 public CopterGenerator(PlaySettings ps, float reloadTime, float missileVel, float missileRotVel,
                        float missileLimit, int minCount, int maxCount,
                        RandomItem <int> carSizeDistr, RandomItem <int> carCountDistr)
 {
     _ps            = ps;
     _reloadTime    = reloadTime;
     _missileVel    = missileVel;
     _missileRotVel = missileRotVel;
     _missileLimit  = missileLimit;
     _minCount      = minCount;
     _maxCount      = maxCount;
     _blockGen      = new BlockGenerator(ps, carSizeDistr, carCountDistr);
 }
コード例 #23
0
    public IEnumerator CoPlayOnBeat(PlaySettings ps)
    {
        yield return(StartCoroutine(DelayAndSnap(ps.metronome, ps.snapStyle, ps.beat, ps.delay)));

        if (!stopping)
        {
            AudioClip ac = Play(ps.fadeLength, ps.fadeType, ps.power, clips.GetClip(), false);
            if (ps.loop)
            {
                looping = true;
                StartCoroutine(Loop(ps.metronome, ac));
            }
        }
    }
コード例 #24
0
        internal static void _ExposeData(this PlaySettings _this)
        {
            foreach (var toggleSetting in toggleSettingDefs)
            {
                if (toggleSetting.exposeValue)
                {
                    bool value = toggleSetting.toggleWorker.Value;
                    Scribe_Values.LookValue(ref value, toggleSetting.saveKey, false, false);

                    if (Scribe.mode == LoadSaveMode.LoadingVars)
                    {
                        toggleSetting.toggleWorker.Value = value;
                    }
                }
            }
        }
コード例 #25
0
 public WallGenerator(PlaySettings ss, RandomItem <int> carSizeDistr, RandomItem <int> carCountDistr,
                      float wallLenMin, float wallLenMax, float gapLenMin, float gapLenMax,
                      float vehVelDelta, int minCount, int maxCount, bool modifable)
 {
     _ss          = ss;
     _wallLenMax  = wallLenMax;
     _wallLenMin  = wallLenMin;
     _gapLenMax   = gapLenMax;
     _gapLenMin   = gapLenMin;
     _minCarSpeed = _ss.NormalCarSpeed - vehVelDelta;
     _maxCarSpeed = _ss.NormalCarSpeed + vehVelDelta;
     _maxCount    = maxCount;
     _minCount    = minCount;
     _bufferList  = new LinkedList <IDescriptorWithID>();
     _blockGen    = new BlockGenerator(ss, carSizeDistr, carCountDistr, 0x20);
     _modifable   = modifable;
 }
コード例 #26
0
    void CharSound(UserData data, SoundResource snd)
    {
        float        loud   = 0.0f;
        PlaySettings psonce = PlaySettings.PlayOnce;

        psonce.Loudness = loud;
        AgentPrivate  agent = ScenePrivate.FindAgent(data.User);
        ObjectPrivate obj   = ScenePrivate.FindObject(agent.AgentInfo.ObjectId);

        if (snd != null)
        {
            agent.PlaySoundAtPosition(snd, obj.Position, psonce);
        }
        else
        {
            Log.Write(LogLevel.Error, GetType().Name, $"No Sound");
        }
    }
コード例 #27
0
ファイル: SoundScript.cs プロジェクト: mojoD/sansar-script
    public override void Init()
    {
        // Check to make sure a sound has been configured in the editor
        if (Sound == null)
        {
            Log.Write("SoundScript has no configured sound to play!");
            return;
        }

        ObjectPrivate.AddInteractionData addData = (ObjectPrivate.AddInteractionData)WaitFor(ObjectPrivate.AddInteraction, "Play sound", true);

        addData.Interaction.Subscribe((InteractionData data) =>
        {
            PlaySettings playSettings = PlaySettings.PlayOnce;
            playSettings.Loudness     = (60.0f * (Loudness / 100.0f)) - 48.0f; // Convert percentage to decibels (dB)

            ScenePrivate.PlaySound(Sound, playSettings);
        });
    }
コード例 #28
0
 public BlockGenerator(PlaySettings ss, RandomItem <int> carSizeDistribution,
                       RandomItem <int> carAmountDistribution, byte mask = 0)
 {
     SS            = ss;
     _carSizeDistr = carSizeDistribution;
     if (_carSizeDistr.Length > 3 || _carSizeDistr.Items.Max() > 3 || _carSizeDistr.Items.Min() < 1)
     {
         throw new ArgumentException("Bad blockLengthDistribution");
     }
     _carAmntDistr = carAmountDistribution;
     if (carAmountDistribution != null &&
         (carAmountDistribution.Items.Min() < 1 || carAmountDistribution.Items.Max() > SS.Road.LinesCount))
     {
         throw new ArgumentException("Bad carAmountDistribution");
     }
     _topBounds    = new float[SS.Road.LinesCount];
     _topBoundsFtr = new float[SS.Road.LinesCount];
     _mask         = mask;
 }
コード例 #29
0
        internal static void _DoPlaySettingsGlobalControls(this PlaySettings _this, WidgetRow row)
        {
            foreach (var toggleSetting in toggleSettingDefs)
            {
                if (toggleSetting.enableButton)
                {
                    bool value = toggleSetting.toggleWorker.Value;

                    row.ToggleableIcon(ref value, toggleSetting.icon, toggleSetting.Label, toggleSetting.soundDef, toggleSetting.tutorTag);

                    if (value == toggleSetting.toggleWorker.Value)
                    {
                        continue;
                    }

                    toggleSetting.toggleWorker.Value = value;
                }
            }
        }
コード例 #30
0
ファイル: HIRCParser.cs プロジェクト: xyx0826/WwiseParser
        public static EventAction ParseEventAction(byte[] data)
        {
            using (var reader = new BinaryReader(new MemoryStream(data)))
            {
                var eventAction = new EventAction(data.Length);
                eventAction.Id             = reader.ReadUInt32();
                eventAction.Scope          = (Scope)reader.ReadByte();
                eventAction.ActionType     = (ActionType)reader.ReadByte();
                eventAction.ObjectId       = reader.ReadUInt32();
                eventAction.Unknown_06     = reader.ReadByte();
                eventAction.ParameterCount = reader.ReadByte();
                eventAction.ParameterTypes = new AudioParameterType[eventAction.ParameterCount];
                for (var i = 0; i < eventAction.ParameterCount; i++)
                {
                    eventAction.ParameterTypes[i] = (AudioParameterType)reader.ReadByte();
                }
                eventAction.ParameterValues = new float[eventAction.ParameterCount];
                for (var i = 0; i < eventAction.ParameterCount; i++)
                {
                    eventAction.ParameterValues[i] = reader.ReadSingle();
                }
                eventAction.Unknown_08 = reader.ReadByte();
                EventActionSettings settings;
                switch (eventAction.ActionType)
                {
                case ActionType.Play:
                    settings = new PlaySettings();
                    ((PlaySettings)settings).FadeInCurve       = (CurveShape)reader.ReadByte();
                    ((PlaySettings)settings).ObjectSoundBankId = reader.ReadUInt32();
                    break;

                default:
                    settings = new UnknownSettings();
                    ((UnknownSettings)settings).Blob
                        = reader.ReadBytes(data.Length - (int)reader.BaseStream.Position);
                    break;
                }
                eventAction.Settings = settings;

                return(eventAction);
            }
        }
コード例 #31
0
    public override void Play(PlaySettings ps)
    {
        stopping = false;

        if (!ps.onBeat)
        {
            Play(ps.fadeLength);
            return;
        }

        if (playing)
        {
            volume.FadeIn(ps.fadeLength, false, ps.fadeType, ps.power);
        }
        if (!playing || !looping)
        {
            playing = true;
            StartCoroutine(CoPlayOnBeat(ps));
        }
    }
コード例 #32
0
    IEnumerator Start()
    {
        // Updateが実行されないようにする。
        enabled = false;

        // ゲーム設定の反映
        PlaySettings settings = PlayInfo.Instance.Settings;

        mode       = settings.Mode;
        setTimeSec = 1.7f - settings.Speed * 0.15f;

        // 楽曲データのロード
        audioManager = AudioManager.Instance;
        yield return(StartCoroutine(LoadMusic()));

        // ゲームスタート
        StartGame();

        // Updateを許可する。
        enabled = true;
    }
コード例 #33
0
    public override void Play(PlaySettings ps)
    {
        stopping = false;

        if (!ps.onBeat) {
            Play (ps.fadeLength);
            return;
        }

        if (playing) {
            volume.FadeIn (ps.fadeLength, false, ps.fadeType, ps.power);
        }
        if (!playing || !looping) {
            playing = true;
            StartCoroutine (CoPlayOnBeat (ps));
        }
    }