thing or bing bong
This commit is contained in:
parent
0cd3b3227e
commit
051b8de84c
|
@ -0,0 +1,13 @@
|
||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Rider ignored files
|
||||||
|
/.idea.Petite Post.iml
|
||||||
|
/contentModel.xml
|
||||||
|
/projectSettingsUpdater.xml
|
||||||
|
/modules.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
|
||||||
|
</project>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="UserContentModel">
|
||||||
|
<attachedFolders />
|
||||||
|
<explicitIncludes />
|
||||||
|
<explicitExcludes />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -202,7 +202,112 @@ Transform:
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: -10}
|
m_LocalPosition: {x: 0, y: 0, z: -10}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1447796513
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1447796515}
|
||||||
|
- component: {fileID: 1447796514}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: House 01
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1447796514
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1447796513}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ef9f1f87684e67e6da7888d486a6bcea, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
mailCycleTime: 1
|
||||||
|
mailChance: 0.5
|
||||||
|
maxMail: 10
|
||||||
|
mailAmountAdjustment: 0.10000000149011612
|
||||||
|
mailAdjustment: 1
|
||||||
|
address: 0
|
||||||
|
manager: {fileID: 1967804166}
|
||||||
|
maxMailLifetime: 5
|
||||||
|
currentMail: 0
|
||||||
|
cycleTime: 0
|
||||||
|
lastRandomMail: 0
|
||||||
|
lastRandomCutoff: 0
|
||||||
|
lastMailAmountAdjustment: 0
|
||||||
|
lastMailAmountAdjustedBy: 0
|
||||||
|
--- !u!4 &1447796515
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1447796513}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1967804165
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1967804167}
|
||||||
|
- component: {fileID: 1967804166}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: BuildingManager
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1967804166
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1967804165}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 32aa227b448de9c55a47a29b4d0ac546, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
gameOver: 0
|
||||||
|
gameOverAddress: -1
|
||||||
|
--- !u!4 &1967804167
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1967804165}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8a7f71fd8aaf32134b5ff17d8e44a131
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,45 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Random = System.Random;
|
||||||
|
|
||||||
|
public class BuildingManager : MonoBehaviour {
|
||||||
|
[SerializeField] private bool gameOver = false;
|
||||||
|
[SerializeField] private int gameOverAddress = -1;
|
||||||
|
|
||||||
|
private Dictionary<int, MailGenerator> _mailGenerators;
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
private void Start() {
|
||||||
|
_mailGenerators = new Dictionary<int, MailGenerator>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
private void Update() { }
|
||||||
|
|
||||||
|
public void RegisterMailGenerator(int atAddress, MailGenerator generator) {
|
||||||
|
_mailGenerators[atAddress] = generator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GameOver(int byAddress) {
|
||||||
|
gameOver = true;
|
||||||
|
gameOverAddress = byAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int RandomMailGenerator() {
|
||||||
|
return new Random().Next(0, _mailGenerators.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int RandomMailGeneratorNot(int address) {
|
||||||
|
var generator = 0;
|
||||||
|
do {
|
||||||
|
generator = RandomMailGenerator();
|
||||||
|
} while (generator != address);
|
||||||
|
|
||||||
|
return generator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MailGenerator GetMailGenerator(int address) {
|
||||||
|
return _mailGenerators[address];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 32aa227b448de9c55a47a29b4d0ac546
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Unity.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
|
using Random = System.Random;
|
||||||
|
|
||||||
|
public class Mail {
|
||||||
|
public int FromAddress;
|
||||||
|
public int ToAddress;
|
||||||
|
public double TimeExisted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MailGenerator : MonoBehaviour {
|
||||||
|
[FormerlySerializedAs("MailCycleTime")] [SerializeField] private int mailCycleTime = 5;
|
||||||
|
[FormerlySerializedAs("MailChance")] [SerializeField, Range(0, 1)] private double mailChance = 0.2;
|
||||||
|
[FormerlySerializedAs("MaxMail")] [SerializeField] private int maxMail = 10;
|
||||||
|
[SerializeField, Range(0, 1)] private double mailAmountAdjustment = 0.3;
|
||||||
|
[SerializeField] private bool mailAdjustment = true;
|
||||||
|
[SerializeField] private int address;
|
||||||
|
[SerializeField] private BuildingManager manager;
|
||||||
|
[SerializeField] private double maxMailLifetime = 30;
|
||||||
|
|
||||||
|
[FormerlySerializedAs("CurrentMail")] [SerializeField, ReadOnly] private int currentMail = 0;
|
||||||
|
[FormerlySerializedAs("CycleTime")] [SerializeField, ReadOnly] private double cycleTime = 0.0;
|
||||||
|
[FormerlySerializedAs("LastRandomMail")] [SerializeField, ReadOnly] private double lastRandomMail = 0.0;
|
||||||
|
[FormerlySerializedAs("LastRandomCutoff")] [SerializeField, ReadOnly] private double lastRandomCutoff = 0.0;
|
||||||
|
[SerializeField, ReadOnly] private double lastMailAmountAdjustment = 0.0;
|
||||||
|
[SerializeField, ReadOnly] private double lastMailAmountAdjustedBy = 0.0;
|
||||||
|
|
||||||
|
private Random _rng;
|
||||||
|
private Dictionary<int, Mail> _mail;
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
private void Start() {
|
||||||
|
_rng = new Random();
|
||||||
|
_mail = new Dictionary<int, Mail>();
|
||||||
|
|
||||||
|
manager.RegisterMailGenerator(address, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
private void Update() {
|
||||||
|
cycleTime += Time.deltaTime;
|
||||||
|
|
||||||
|
foreach (var mail in _mail) {
|
||||||
|
mail.Value.TimeExisted += Time.deltaTime;
|
||||||
|
|
||||||
|
if (mail.Value.TimeExisted > maxMailLifetime) {
|
||||||
|
manager.GameOver(mail.Value.ToAddress);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cycleTime > mailCycleTime) {
|
||||||
|
cycleTime = 0;
|
||||||
|
|
||||||
|
lastRandomMail = _rng.NextDouble();
|
||||||
|
lastRandomCutoff = 1 - mailChance;
|
||||||
|
|
||||||
|
if (currentMail < maxMail && lastRandomMail > lastRandomCutoff) {
|
||||||
|
currentMail++;
|
||||||
|
var newMail = new Mail {
|
||||||
|
FromAddress = address,
|
||||||
|
ToAddress = manager.RandomMailGeneratorNot(address),
|
||||||
|
TimeExisted = 0.0
|
||||||
|
};
|
||||||
|
_mail[currentMail] = newMail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mailAdjustment) {
|
||||||
|
lastMailAmountAdjustment = _rng.NextDouble() - 0.5;
|
||||||
|
lastMailAmountAdjustedBy = lastMailAmountAdjustment * mailAmountAdjustment;
|
||||||
|
mailChance += lastMailAmountAdjustedBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mailChance > 1) mailChance = 1;
|
||||||
|
if (mailChance < 0) mailChance = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ef9f1f87684e67e6da7888d486a6bcea
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,167 @@
|
||||||
|
{
|
||||||
|
"templatePinStates": [],
|
||||||
|
"dependencyTypeInfos": [
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.AnimationClip",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEditor.Animations.AnimatorController",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.AnimatorOverrideController",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEditor.Audio.AudioMixerController",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.ComputeShader",
|
||||||
|
"ignore": true,
|
||||||
|
"defaultInstantiationMode": 1,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Cubemap",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.GameObject",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEditor.LightingDataAsset",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.LightingSettings",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Material",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEditor.MonoScript",
|
||||||
|
"ignore": true,
|
||||||
|
"defaultInstantiationMode": 1,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.PhysicMaterial",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.PhysicsMaterial2D",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Rendering.VolumeProfile",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEditor.SceneAsset",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Shader",
|
||||||
|
"ignore": true,
|
||||||
|
"defaultInstantiationMode": 1,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.ShaderVariantCollection",
|
||||||
|
"ignore": true,
|
||||||
|
"defaultInstantiationMode": 1,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Texture",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Texture2D",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "UnityEngine.Timeline.TimelineAsset",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 0,
|
||||||
|
"supportsModification": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"defaultDependencyTypeInfo": {
|
||||||
|
"userAdded": false,
|
||||||
|
"type": "<default_scene_template_dependencies>",
|
||||||
|
"ignore": false,
|
||||||
|
"defaultInstantiationMode": 1,
|
||||||
|
"supportsModification": true
|
||||||
|
},
|
||||||
|
"newSceneOverride": 0
|
||||||
|
}
|
Loading…
Reference in New Issue